copass-management 0.5.0__tar.gz
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.
- copass_management-0.5.0/.gitignore +38 -0
- copass_management-0.5.0/PKG-INFO +68 -0
- copass_management-0.5.0/README.md +42 -0
- copass_management-0.5.0/pyproject.toml +59 -0
- copass_management-0.5.0/src/copass_management/__init__.py +52 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/get_agent.example.json +32 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/get_run_trace.example.json +26 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/get_source.example.json +31 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_agent_tools.example.json +32 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_agents.example.json +30 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_api_keys.example.json +31 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_apps.example.json +25 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_connected_accounts.example.json +17 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_runs.example.json +34 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_sandbox_connections.example.json +34 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_sandboxes.example.json +22 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_sources.example.json +22 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_trigger_components.example.json +33 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_triggers.example.json +24 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/get_agent.json +81 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/get_run_trace.json +55 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/get_source.json +58 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/list_agent_tools.json +54 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/list_agents.json +44 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/list_api_keys.json +63 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/list_apps.json +64 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/list_connected_accounts.json +55 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/list_runs.json +63 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/list_sandbox_connections.json +60 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/list_sandboxes.json +36 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/list_sources.json +46 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/list_trigger_components.json +53 -0
- copass_management-0.5.0/src/copass_management/_spec/v1/list_triggers.json +58 -0
- copass_management-0.5.0/src/copass_management/adapters/__init__.py +0 -0
- copass_management-0.5.0/src/copass_management/adapters/mcp.py +60 -0
- copass_management-0.5.0/src/copass_management/registrar.py +129 -0
- copass_management-0.5.0/src/copass_management/specs.py +150 -0
- copass_management-0.5.0/src/copass_management/tools/__init__.py +119 -0
- copass_management-0.5.0/src/copass_management/tools/add_user_mcp_source.py +31 -0
- copass_management-0.5.0/src/copass_management/tools/connect_linear.py +21 -0
- copass_management-0.5.0/src/copass_management/tools/create_agent.py +40 -0
- copass_management-0.5.0/src/copass_management/tools/create_trigger.py +24 -0
- copass_management-0.5.0/src/copass_management/tools/get_agent.py +10 -0
- copass_management-0.5.0/src/copass_management/tools/get_run_trace.py +10 -0
- copass_management-0.5.0/src/copass_management/tools/get_source.py +13 -0
- copass_management-0.5.0/src/copass_management/tools/grant_sandbox_connection.py +25 -0
- copass_management-0.5.0/src/copass_management/tools/list_agent_tools.py +10 -0
- copass_management-0.5.0/src/copass_management/tools/list_agents.py +14 -0
- copass_management-0.5.0/src/copass_management/tools/list_api_keys.py +19 -0
- copass_management-0.5.0/src/copass_management/tools/list_apps.py +18 -0
- copass_management-0.5.0/src/copass_management/tools/list_connected_accounts.py +14 -0
- copass_management-0.5.0/src/copass_management/tools/list_runs.py +15 -0
- copass_management-0.5.0/src/copass_management/tools/list_sandbox_connections.py +13 -0
- copass_management-0.5.0/src/copass_management/tools/list_sandboxes.py +10 -0
- copass_management-0.5.0/src/copass_management/tools/list_sources.py +14 -0
- copass_management-0.5.0/src/copass_management/tools/list_trigger_components.py +18 -0
- copass_management-0.5.0/src/copass_management/tools/list_triggers.py +12 -0
- copass_management-0.5.0/src/copass_management/tools/pause_trigger.py +14 -0
- copass_management-0.5.0/src/copass_management/tools/provision_source.py +32 -0
- copass_management-0.5.0/src/copass_management/tools/resume_trigger.py +14 -0
- copass_management-0.5.0/src/copass_management/tools/revoke_sandbox_connection.py +15 -0
- copass_management-0.5.0/src/copass_management/tools/revoke_user_mcp_source.py +13 -0
- copass_management-0.5.0/src/copass_management/tools/start_integration_connect.py +21 -0
- copass_management-0.5.0/src/copass_management/tools/test_user_mcp_source.py +13 -0
- copass_management-0.5.0/src/copass_management/tools/update_agent_model_settings.py +29 -0
- copass_management-0.5.0/src/copass_management/tools/update_agent_prompt.py +16 -0
- copass_management-0.5.0/src/copass_management/tools/update_agent_tool_sources.py +24 -0
- copass_management-0.5.0/src/copass_management/tools/update_agent_tools.py +17 -0
- copass_management-0.5.0/src/copass_management/tools/update_source.py +37 -0
- copass_management-0.5.0/src/copass_management/tools/update_trigger.py +29 -0
- copass_management-0.5.0/src/copass_management/tools/wire_integration_to_agent.py +16 -0
- copass_management-0.5.0/tests/__init__.py +0 -0
- copass_management-0.5.0/tests/test_conformance.py +183 -0
- copass_management-0.5.0/tests/test_registrar.py +140 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
|
|
4
|
+
# Build output
|
|
5
|
+
dist/
|
|
6
|
+
*.tsbuildinfo
|
|
7
|
+
|
|
8
|
+
# Environment
|
|
9
|
+
.env
|
|
10
|
+
.env.*
|
|
11
|
+
|
|
12
|
+
# IDE
|
|
13
|
+
.vscode/
|
|
14
|
+
.idea/
|
|
15
|
+
*.swp
|
|
16
|
+
*.swo
|
|
17
|
+
*~
|
|
18
|
+
|
|
19
|
+
# OS
|
|
20
|
+
.DS_Store
|
|
21
|
+
Thumbs.db
|
|
22
|
+
|
|
23
|
+
# Test
|
|
24
|
+
coverage/
|
|
25
|
+
|
|
26
|
+
# Lerna
|
|
27
|
+
lerna-debug.log
|
|
28
|
+
.nx/cache
|
|
29
|
+
.nx/workspace-data
|
|
30
|
+
|
|
31
|
+
# Python
|
|
32
|
+
__pycache__/
|
|
33
|
+
*.pyc
|
|
34
|
+
*.pyo
|
|
35
|
+
*.egg-info/
|
|
36
|
+
.venv/
|
|
37
|
+
venv/
|
|
38
|
+
.olane
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: copass-management
|
|
3
|
+
Version: 0.5.0
|
|
4
|
+
Summary: Spec-driven management tool registrar for Copass agents (read-only, Phase 1).
|
|
5
|
+
Project-URL: Homepage, https://github.com/olane-labs/copass
|
|
6
|
+
Project-URL: Repository, https://github.com/olane-labs/copass.git
|
|
7
|
+
Author: Olane Inc.
|
|
8
|
+
License: MIT
|
|
9
|
+
Keywords: agents,copass,management,mcp,olane
|
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Requires-Python: >=3.10
|
|
16
|
+
Requires-Dist: copass-core>=0.3.0
|
|
17
|
+
Requires-Dist: jsonschema>=4.21
|
|
18
|
+
Requires-Dist: pydantic>=2.7
|
|
19
|
+
Provides-Extra: dev
|
|
20
|
+
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
21
|
+
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
|
|
22
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
23
|
+
Requires-Dist: respx>=0.21; extra == 'dev'
|
|
24
|
+
Requires-Dist: ruff>=0.5; extra == 'dev'
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
|
|
27
|
+
# copass-management
|
|
28
|
+
|
|
29
|
+
Spec-driven management tool registrar for Copass agents (Python).
|
|
30
|
+
|
|
31
|
+
This package consumes the `copass/spec/management/v1/` JSON
|
|
32
|
+
Schema corpus and exposes a transport-agnostic registrar that wires
|
|
33
|
+
each tool through `copass-core`. An optional MCP adapter lives at
|
|
34
|
+
`copass_management.adapters.mcp` for Model Context Protocol consumers.
|
|
35
|
+
|
|
36
|
+
Phase 1 ships the **read-only subset** (14 tools). Write tools follow
|
|
37
|
+
in Phase 2.
|
|
38
|
+
|
|
39
|
+
## Usage
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
from copass_core import ApiKeyAuth, CopassClient
|
|
43
|
+
from copass_management import (
|
|
44
|
+
RegistrarOptions,
|
|
45
|
+
register_management_tools,
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
client = CopassClient(auth=ApiKeyAuth(key="olk_..."))
|
|
49
|
+
|
|
50
|
+
def register(registration):
|
|
51
|
+
print(registration.name, registration.description)
|
|
52
|
+
|
|
53
|
+
register_management_tools(
|
|
54
|
+
register,
|
|
55
|
+
client,
|
|
56
|
+
RegistrarOptions(sandbox_id="sb_..."),
|
|
57
|
+
)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
For MCP transports, use `register_to_mcp_server` from
|
|
61
|
+
`copass_management.adapters.mcp`. The MCP SDK is an optional
|
|
62
|
+
dependency installed separately.
|
|
63
|
+
|
|
64
|
+
## Spec source
|
|
65
|
+
|
|
66
|
+
The package vendors a copy of the JSON Schema corpus under
|
|
67
|
+
`copass_management/_spec/v1/`. In dev, set
|
|
68
|
+
`COPASS_MANAGEMENT_SPEC_DIR` to point at the source tree.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# copass-management
|
|
2
|
+
|
|
3
|
+
Spec-driven management tool registrar for Copass agents (Python).
|
|
4
|
+
|
|
5
|
+
This package consumes the `copass/spec/management/v1/` JSON
|
|
6
|
+
Schema corpus and exposes a transport-agnostic registrar that wires
|
|
7
|
+
each tool through `copass-core`. An optional MCP adapter lives at
|
|
8
|
+
`copass_management.adapters.mcp` for Model Context Protocol consumers.
|
|
9
|
+
|
|
10
|
+
Phase 1 ships the **read-only subset** (14 tools). Write tools follow
|
|
11
|
+
in Phase 2.
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```python
|
|
16
|
+
from copass_core import ApiKeyAuth, CopassClient
|
|
17
|
+
from copass_management import (
|
|
18
|
+
RegistrarOptions,
|
|
19
|
+
register_management_tools,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
client = CopassClient(auth=ApiKeyAuth(key="olk_..."))
|
|
23
|
+
|
|
24
|
+
def register(registration):
|
|
25
|
+
print(registration.name, registration.description)
|
|
26
|
+
|
|
27
|
+
register_management_tools(
|
|
28
|
+
register,
|
|
29
|
+
client,
|
|
30
|
+
RegistrarOptions(sandbox_id="sb_..."),
|
|
31
|
+
)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
For MCP transports, use `register_to_mcp_server` from
|
|
35
|
+
`copass_management.adapters.mcp`. The MCP SDK is an optional
|
|
36
|
+
dependency installed separately.
|
|
37
|
+
|
|
38
|
+
## Spec source
|
|
39
|
+
|
|
40
|
+
The package vendors a copy of the JSON Schema corpus under
|
|
41
|
+
`copass_management/_spec/v1/`. In dev, set
|
|
42
|
+
`COPASS_MANAGEMENT_SPEC_DIR` to point at the source tree.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "copass-management"
|
|
7
|
+
version = "0.5.0"
|
|
8
|
+
description = "Spec-driven management tool registrar for Copass agents (read-only, Phase 1)."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = { text = "MIT" }
|
|
11
|
+
authors = [{ name = "Olane Inc." }]
|
|
12
|
+
requires-python = ">=3.10"
|
|
13
|
+
keywords = ["copass", "management", "agents", "mcp", "olane"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"License :: OSI Approved :: MIT License",
|
|
16
|
+
"Programming Language :: Python :: 3",
|
|
17
|
+
"Programming Language :: Python :: 3.10",
|
|
18
|
+
"Programming Language :: Python :: 3.11",
|
|
19
|
+
"Programming Language :: Python :: 3.12",
|
|
20
|
+
]
|
|
21
|
+
dependencies = [
|
|
22
|
+
"copass-core>=0.3.0",
|
|
23
|
+
"pydantic>=2.7",
|
|
24
|
+
"jsonschema>=4.21",
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
[project.optional-dependencies]
|
|
28
|
+
dev = [
|
|
29
|
+
"pytest>=8.0",
|
|
30
|
+
"pytest-asyncio>=0.23",
|
|
31
|
+
"respx>=0.21",
|
|
32
|
+
"mypy>=1.10",
|
|
33
|
+
"ruff>=0.5",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
[project.urls]
|
|
37
|
+
Homepage = "https://github.com/olane-labs/copass"
|
|
38
|
+
Repository = "https://github.com/olane-labs/copass.git"
|
|
39
|
+
|
|
40
|
+
[tool.copass]
|
|
41
|
+
min_spec_version = "v1"
|
|
42
|
+
max_spec_version = "v1"
|
|
43
|
+
|
|
44
|
+
[tool.hatch.build.targets.wheel]
|
|
45
|
+
packages = ["src/copass_management"]
|
|
46
|
+
artifacts = ["src/copass_management/_spec/**/*.json"]
|
|
47
|
+
|
|
48
|
+
[tool.pytest.ini_options]
|
|
49
|
+
asyncio_mode = "auto"
|
|
50
|
+
testpaths = ["tests"]
|
|
51
|
+
|
|
52
|
+
[tool.ruff]
|
|
53
|
+
line-length = 100
|
|
54
|
+
target-version = "py310"
|
|
55
|
+
|
|
56
|
+
[tool.mypy]
|
|
57
|
+
python_version = "3.10"
|
|
58
|
+
strict = true
|
|
59
|
+
packages = ["copass_management"]
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"""Spec-driven management tool registrar for Copass agents (Python).
|
|
2
|
+
|
|
3
|
+
Phase 1 ships the read-only subset (14 tools). Write tools land in
|
|
4
|
+
Phase 2.
|
|
5
|
+
|
|
6
|
+
Public surface::
|
|
7
|
+
|
|
8
|
+
from copass_management import (
|
|
9
|
+
register_management_tools,
|
|
10
|
+
register_to_mcp_server,
|
|
11
|
+
load_management_specs,
|
|
12
|
+
MIN_SPEC_VERSION,
|
|
13
|
+
MAX_SPEC_VERSION,
|
|
14
|
+
)
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from copass_management.adapters.mcp import register_to_mcp_server
|
|
18
|
+
from copass_management.registrar import (
|
|
19
|
+
Register,
|
|
20
|
+
RegistrarOptions,
|
|
21
|
+
ToolContext,
|
|
22
|
+
ToolHandler,
|
|
23
|
+
ToolRegistration,
|
|
24
|
+
register_management_tools,
|
|
25
|
+
)
|
|
26
|
+
from copass_management.specs import (
|
|
27
|
+
LoadedManagementCorpus,
|
|
28
|
+
ManagementFixture,
|
|
29
|
+
ManagementSpec,
|
|
30
|
+
MAX_SPEC_VERSION,
|
|
31
|
+
MIN_SPEC_VERSION,
|
|
32
|
+
load_management_specs,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
__version__ = "0.5.0"
|
|
36
|
+
|
|
37
|
+
__all__ = [
|
|
38
|
+
"__version__",
|
|
39
|
+
"Register",
|
|
40
|
+
"RegistrarOptions",
|
|
41
|
+
"ToolContext",
|
|
42
|
+
"ToolHandler",
|
|
43
|
+
"ToolRegistration",
|
|
44
|
+
"register_management_tools",
|
|
45
|
+
"register_to_mcp_server",
|
|
46
|
+
"load_management_specs",
|
|
47
|
+
"LoadedManagementCorpus",
|
|
48
|
+
"ManagementFixture",
|
|
49
|
+
"ManagementSpec",
|
|
50
|
+
"MIN_SPEC_VERSION",
|
|
51
|
+
"MAX_SPEC_VERSION",
|
|
52
|
+
]
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"slug": "gtm-marketing"
|
|
4
|
+
},
|
|
5
|
+
"output": {
|
|
6
|
+
"agent": {
|
|
7
|
+
"agent_id": "ag_01HXYZAB1234567890123ABCDE",
|
|
8
|
+
"slug": "gtm-marketing",
|
|
9
|
+
"name": "GTM Marketing Triage",
|
|
10
|
+
"description": "Reads incoming marketing-channel events and drafts responses.",
|
|
11
|
+
"system_prompt": "You triage marketing-channel events. When a mention arrives, summarise the request and react with a thumbs-up.",
|
|
12
|
+
"tool_allowlist": [
|
|
13
|
+
"discover",
|
|
14
|
+
"interpret",
|
|
15
|
+
"search",
|
|
16
|
+
"pd_slack_v2_slack_v2-add-reaction"
|
|
17
|
+
],
|
|
18
|
+
"model_settings": {
|
|
19
|
+
"backend": "anthropic",
|
|
20
|
+
"model": "claude-sonnet-4-6",
|
|
21
|
+
"temperature": 0.3,
|
|
22
|
+
"max_tokens": 4096,
|
|
23
|
+
"max_turns": 8,
|
|
24
|
+
"timeout_s": 60
|
|
25
|
+
},
|
|
26
|
+
"status": "active",
|
|
27
|
+
"version": 7,
|
|
28
|
+
"created_at": "2026-03-12T11:14:00.000000+00:00",
|
|
29
|
+
"updated_at": "2026-04-22T08:01:55.000000+00:00"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"run_id": "rn_01HXYZAB1234567890123RUN01"
|
|
4
|
+
},
|
|
5
|
+
"output": {
|
|
6
|
+
"run_id": "rn_01HXYZAB1234567890123RUN01",
|
|
7
|
+
"agent_id": "ag_01HXYZAB1234567890123ABCDE",
|
|
8
|
+
"status": "succeeded",
|
|
9
|
+
"started_at": "2026-04-29T18:02:55.000000+00:00",
|
|
10
|
+
"finished_at": "2026-04-29T18:03:00.000000+00:00",
|
|
11
|
+
"error_message": null,
|
|
12
|
+
"tool_resolution_trace": {
|
|
13
|
+
"sources_resolved": ["copass_management", "copass_retrieval"],
|
|
14
|
+
"sources_skipped": [],
|
|
15
|
+
"tool_names_advertised": [
|
|
16
|
+
"discover",
|
|
17
|
+
"interpret",
|
|
18
|
+
"search",
|
|
19
|
+
"pd_slack_v2_slack_v2-add-reaction"
|
|
20
|
+
],
|
|
21
|
+
"allowlist_filtered_out": [],
|
|
22
|
+
"allowlist_missing_entries": [],
|
|
23
|
+
"duration_ms": 132
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"data_source_id": "ds_01HXYZAB1234567890123ABCDE"
|
|
4
|
+
},
|
|
5
|
+
"output": {
|
|
6
|
+
"source": {
|
|
7
|
+
"data_source_id": "ds_01HXYZAB1234567890123ABCDE",
|
|
8
|
+
"name": "Acme HQ Slack",
|
|
9
|
+
"provider": "slack_v2",
|
|
10
|
+
"ingestion_mode": "realtime",
|
|
11
|
+
"status": "active",
|
|
12
|
+
"kind": "trigger",
|
|
13
|
+
"external_account_id": "apn_demo_acct_001",
|
|
14
|
+
"webhook_url": "https://api.example.copass.id/api/v1/webhooks/integrations/inbound/abc123",
|
|
15
|
+
"last_sync_at": "2026-04-29T22:14:01.000000+00:00",
|
|
16
|
+
"created_at": "2026-02-11T17:02:33.000000+00:00",
|
|
17
|
+
"adapter_config": {
|
|
18
|
+
"app_slug": "slack_v2",
|
|
19
|
+
"account_id": "apn_demo_acct_001",
|
|
20
|
+
"external_user_id": "u_user-uuid-placeholder",
|
|
21
|
+
"trigger_component": {
|
|
22
|
+
"component_id": "slack_v2-new-mention",
|
|
23
|
+
"configured_props": {
|
|
24
|
+
"slack": { "authProvisionId": "apn_demo_acct_001" },
|
|
25
|
+
"keyword": "copass"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"app_slug": "slack_v2"
|
|
4
|
+
},
|
|
5
|
+
"output": {
|
|
6
|
+
"tools": [
|
|
7
|
+
{
|
|
8
|
+
"name": "pd_slack_v2_slack_v2-add-reaction",
|
|
9
|
+
"app_slug": "slack_v2",
|
|
10
|
+
"description": "Add an emoji reaction to a message."
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "pd_slack_v2_slack_v2-post-message",
|
|
14
|
+
"app_slug": "slack_v2",
|
|
15
|
+
"description": "Post a message into a channel or thread."
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"by_app": {
|
|
19
|
+
"slack_v2": [
|
|
20
|
+
{
|
|
21
|
+
"name": "pd_slack_v2_slack_v2-add-reaction",
|
|
22
|
+
"description": "Add an emoji reaction to a message."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "pd_slack_v2_slack_v2-post-message",
|
|
26
|
+
"description": "Post a message into a channel or thread."
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"count": 2
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"status": "active"
|
|
4
|
+
},
|
|
5
|
+
"output": {
|
|
6
|
+
"agents": [
|
|
7
|
+
{
|
|
8
|
+
"agent_id": "ag_01HXYZAB1234567890123ABCDE",
|
|
9
|
+
"slug": "gtm-marketing",
|
|
10
|
+
"name": "GTM Marketing Triage",
|
|
11
|
+
"description": "Reads incoming marketing-channel events and drafts responses.",
|
|
12
|
+
"status": "active",
|
|
13
|
+
"version": 7,
|
|
14
|
+
"created_at": "2026-03-12T11:14:00.000000+00:00",
|
|
15
|
+
"updated_at": "2026-04-22T08:01:55.000000+00:00"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"agent_id": "ag_01HXYZAB1234567890123ABCDF",
|
|
19
|
+
"slug": "support-firefighter",
|
|
20
|
+
"name": "Support Firefighter",
|
|
21
|
+
"description": "Reacts to high-severity support pings.",
|
|
22
|
+
"status": "active",
|
|
23
|
+
"version": 3,
|
|
24
|
+
"created_at": "2026-04-01T09:00:00.000000+00:00",
|
|
25
|
+
"updated_at": "2026-04-01T09:00:00.000000+00:00"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"count": 2
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"kinds": ["general", "agent_invoke"],
|
|
4
|
+
"include_revoked": false
|
|
5
|
+
},
|
|
6
|
+
"output": {
|
|
7
|
+
"keys": [
|
|
8
|
+
{
|
|
9
|
+
"api_key_id": "ak_01HXYZAB1234567890123KEY01",
|
|
10
|
+
"kind": "general",
|
|
11
|
+
"label": "Workstation",
|
|
12
|
+
"key_prefix": "olk_demo",
|
|
13
|
+
"agent_id": null,
|
|
14
|
+
"created_at": "2026-02-08T10:15:30.000000+00:00",
|
|
15
|
+
"expires_at": null,
|
|
16
|
+
"revoked_at": null
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"api_key_id": "ak_01HXYZAB1234567890123KEY02",
|
|
20
|
+
"kind": "agent_invoke",
|
|
21
|
+
"label": "gtm-marketing invoke",
|
|
22
|
+
"key_prefix": "olk_demo",
|
|
23
|
+
"agent_id": "ag_01HXYZAB1234567890123ABCDE",
|
|
24
|
+
"created_at": "2026-04-01T09:01:00.000000+00:00",
|
|
25
|
+
"expires_at": "2026-10-01T09:01:00.000000+00:00",
|
|
26
|
+
"revoked_at": null
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"count": 2
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"q": "slack",
|
|
4
|
+
"limit": 10
|
|
5
|
+
},
|
|
6
|
+
"output": {
|
|
7
|
+
"apps": [
|
|
8
|
+
{
|
|
9
|
+
"app_slug": "slack_v2",
|
|
10
|
+
"name": "Slack",
|
|
11
|
+
"description": "Send messages, react, and read channels.",
|
|
12
|
+
"categories": ["chat", "team-collaboration"],
|
|
13
|
+
"provider": "trigger_provider"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"app_slug": "slack-admin",
|
|
17
|
+
"name": "Slack Admin",
|
|
18
|
+
"description": "Workspace admin actions.",
|
|
19
|
+
"categories": ["chat", "admin"],
|
|
20
|
+
"provider": "trigger_provider"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"next_cursor": null
|
|
24
|
+
}
|
|
25
|
+
}
|
copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_connected_accounts.example.json
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"app_slug": "slack_v2"
|
|
4
|
+
},
|
|
5
|
+
"output": {
|
|
6
|
+
"accounts": [
|
|
7
|
+
{
|
|
8
|
+
"id": "apn_demo_acct_001",
|
|
9
|
+
"app_slug": "slack_v2",
|
|
10
|
+
"name": "Acme HQ",
|
|
11
|
+
"created_at": "2026-02-11T17:02:30.000000+00:00",
|
|
12
|
+
"provider": "trigger_provider"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"count": 1
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"agent_slug": "gtm-marketing",
|
|
4
|
+
"limit": 5
|
|
5
|
+
},
|
|
6
|
+
"output": {
|
|
7
|
+
"agent_slug": "gtm-marketing",
|
|
8
|
+
"runs": [
|
|
9
|
+
{
|
|
10
|
+
"run_id": "rn_01HXYZAB1234567890123RUN01",
|
|
11
|
+
"status": "succeeded",
|
|
12
|
+
"trigger_id": "tg_01HXYZAB1234567890123TRIG1",
|
|
13
|
+
"tokens_in": 2418,
|
|
14
|
+
"tokens_out": 412,
|
|
15
|
+
"duration_ms": 4812,
|
|
16
|
+
"error_message": null,
|
|
17
|
+
"started_at": "2026-04-29T18:02:55.000000+00:00",
|
|
18
|
+
"finished_at": "2026-04-29T18:03:00.000000+00:00"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"run_id": "rn_01HXYZAB1234567890123RUN02",
|
|
22
|
+
"status": "failed",
|
|
23
|
+
"trigger_id": "tg_01HXYZAB1234567890123TRIG1",
|
|
24
|
+
"tokens_in": 1112,
|
|
25
|
+
"tokens_out": 0,
|
|
26
|
+
"duration_ms": 921,
|
|
27
|
+
"error_message": "tool 'pd_slack_v2_slack_v2-add-reaction' returned 429",
|
|
28
|
+
"started_at": "2026-04-29T17:54:01.000000+00:00",
|
|
29
|
+
"finished_at": "2026-04-29T17:54:02.000000+00:00"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"count": 2
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"include_revoked": false
|
|
4
|
+
},
|
|
5
|
+
"output": {
|
|
6
|
+
"connections": [
|
|
7
|
+
{
|
|
8
|
+
"connection_id": "cn_01HXYZAB1234567890123CONN1",
|
|
9
|
+
"user_id": "00000000-0000-4000-a000-000000000001",
|
|
10
|
+
"copass_id": "alice",
|
|
11
|
+
"role": "editor",
|
|
12
|
+
"project_id": null,
|
|
13
|
+
"label": "@alice",
|
|
14
|
+
"status": "active",
|
|
15
|
+
"expires_at": null,
|
|
16
|
+
"revoked_at": null,
|
|
17
|
+
"created_at": "2026-04-01T11:30:00.000000+00:00"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"connection_id": "cn_01HXYZAB1234567890123CONN2",
|
|
21
|
+
"user_id": "00000000-0000-4000-a000-000000000002",
|
|
22
|
+
"copass_id": "bob",
|
|
23
|
+
"role": "viewer",
|
|
24
|
+
"project_id": "pj_01HXYZAB1234567890123PRJ01",
|
|
25
|
+
"label": "@bob — sales project",
|
|
26
|
+
"status": "active",
|
|
27
|
+
"expires_at": "2026-12-31T23:59:59.000000+00:00",
|
|
28
|
+
"revoked_at": null,
|
|
29
|
+
"created_at": "2026-04-15T08:00:00.000000+00:00"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"count": 2
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {},
|
|
3
|
+
"output": {
|
|
4
|
+
"sandboxes": [
|
|
5
|
+
{
|
|
6
|
+
"sandbox_id": "sb_01HXYZAB12345678901234567A",
|
|
7
|
+
"name": "Personal",
|
|
8
|
+
"tier": "free",
|
|
9
|
+
"status": "active",
|
|
10
|
+
"created_at": "2025-12-04T18:23:11.000000+00:00"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"sandbox_id": "sb_01HXYZAB12345678901234567B",
|
|
14
|
+
"name": "Work",
|
|
15
|
+
"tier": "pro",
|
|
16
|
+
"status": "active",
|
|
17
|
+
"created_at": "2026-01-22T09:15:00.000000+00:00"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"count": 2
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"provider": "slack_v2"
|
|
4
|
+
},
|
|
5
|
+
"output": {
|
|
6
|
+
"sources": [
|
|
7
|
+
{
|
|
8
|
+
"data_source_id": "ds_01HXYZAB1234567890123ABCDE",
|
|
9
|
+
"name": "Acme HQ Slack",
|
|
10
|
+
"provider": "slack_v2",
|
|
11
|
+
"ingestion_mode": "realtime",
|
|
12
|
+
"status": "active",
|
|
13
|
+
"kind": "trigger",
|
|
14
|
+
"external_account_id": "apn_demo_acct_001",
|
|
15
|
+
"webhook_url": "https://api.example.copass.id/api/v1/webhooks/integrations/inbound/abc123",
|
|
16
|
+
"last_sync_at": "2026-04-29T22:14:01.000000+00:00",
|
|
17
|
+
"created_at": "2026-02-11T17:02:33.000000+00:00"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"count": 1
|
|
21
|
+
}
|
|
22
|
+
}
|
copass_management-0.5.0/src/copass_management/_spec/v1/examples/list_trigger_components.example.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"app": "slack_v2",
|
|
4
|
+
"q": "mention",
|
|
5
|
+
"limit": 25
|
|
6
|
+
},
|
|
7
|
+
"output": {
|
|
8
|
+
"components": [
|
|
9
|
+
{
|
|
10
|
+
"component_id": "slack_v2-new-mention",
|
|
11
|
+
"name": "New Mention (Instant)",
|
|
12
|
+
"description": "Emit when the connected user is mentioned in any subscribed channel.",
|
|
13
|
+
"version": "0.0.7",
|
|
14
|
+
"configurable_props": [
|
|
15
|
+
{
|
|
16
|
+
"name": "slack",
|
|
17
|
+
"type": "app",
|
|
18
|
+
"label": "Slack account",
|
|
19
|
+
"required": true
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "keyword",
|
|
23
|
+
"type": "string",
|
|
24
|
+
"label": "Mention keyword",
|
|
25
|
+
"required": true,
|
|
26
|
+
"description": "Literal substring matched against the message text. e.g. 'copass'."
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"count": 1
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"input": {
|
|
3
|
+
"agent_slug": "gtm-marketing"
|
|
4
|
+
},
|
|
5
|
+
"output": {
|
|
6
|
+
"agent_slug": "gtm-marketing",
|
|
7
|
+
"triggers": [
|
|
8
|
+
{
|
|
9
|
+
"trigger_id": "tg_01HXYZAB1234567890123TRIG1",
|
|
10
|
+
"data_source_id": "ds_01HXYZAB1234567890123ABCDE",
|
|
11
|
+
"event_type_filter": "slack.message.new",
|
|
12
|
+
"filter_config": {
|
|
13
|
+
"item.channel": "C0123456789"
|
|
14
|
+
},
|
|
15
|
+
"status": "active",
|
|
16
|
+
"rate_limit_per_hour": 60,
|
|
17
|
+
"fire_count": 142,
|
|
18
|
+
"last_fired_at": "2026-04-29T18:02:55.000000+00:00",
|
|
19
|
+
"created_at": "2026-03-12T11:14:30.000000+00:00"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"count": 1
|
|
23
|
+
}
|
|
24
|
+
}
|