Skip to content

Commit 205f565

Browse files
authored
Update Sphinx docs indices (#787)
1 parent 6881c98 commit 205f565

11 files changed

Lines changed: 304 additions & 45 deletions

‎docs/ai.rst‎

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
splunklib.ai
2+
------------
3+
4+
.. automodule:: splunklib.ai
5+
6+
.. autoclass:: splunklib.ai.agent.Agent
7+
:members: invoke, invoke_with_data
8+
9+
.. autoexception:: splunklib.ai.agent.PrivilegedExecutionError
10+
:members:
11+
12+
.. rubric:: Models
13+
14+
.. autoclass:: splunklib.ai.model.PredefinedModel
15+
:members:
16+
17+
.. autoclass:: splunklib.ai.model.AnthropicModel
18+
:members:
19+
20+
.. autoclass:: splunklib.ai.model.OpenAIModel
21+
:members:
22+
23+
.. autoclass:: splunklib.ai.model.GoogleModel
24+
:members:
25+
26+
.. rubric:: Messages
27+
28+
.. autoclass:: splunklib.ai.messages.BaseMessage
29+
:members:
30+
31+
.. autoclass:: splunklib.ai.messages.HumanMessage
32+
:members:
33+
34+
.. autoclass:: splunklib.ai.messages.AIMessage
35+
:members:
36+
37+
.. autoclass:: splunklib.ai.messages.SystemMessage
38+
:members:
39+
40+
.. autoclass:: splunklib.ai.messages.ToolMessage
41+
:members:
42+
43+
.. autoclass:: splunklib.ai.messages.SubagentMessage
44+
:members:
45+
46+
.. autoclass:: splunklib.ai.messages.AgentResponse
47+
:members:
48+
49+
.. autoclass:: splunklib.ai.messages.TextBlock
50+
:members:
51+
52+
.. autoclass:: splunklib.ai.messages.ToolCall
53+
:members:
54+
55+
.. autoclass:: splunklib.ai.messages.SubagentCall
56+
:members:
57+
58+
.. autoclass:: splunklib.ai.messages.ToolResult
59+
:members:
60+
61+
.. autoclass:: splunklib.ai.messages.SubagentTextResult
62+
:members:
63+
64+
.. autoclass:: splunklib.ai.messages.SubagentStructuredResult
65+
:members:
66+
67+
.. autoclass:: splunklib.ai.messages.ToolFailureResult
68+
:members:
69+
70+
.. autoclass:: splunklib.ai.messages.SubagentFailureResult
71+
:members:
72+
73+
.. rubric:: Middleware
74+
75+
.. autoclass:: splunklib.ai.middleware.AgentMiddleware
76+
:members:
77+
78+
.. autofunction:: splunklib.ai.middleware.agent_middleware
79+
80+
.. autofunction:: splunklib.ai.middleware.model_middleware
81+
82+
.. autofunction:: splunklib.ai.middleware.tool_middleware
83+
84+
.. autofunction:: splunklib.ai.middleware.subagent_middleware
85+
86+
.. autoclass:: splunklib.ai.middleware.AgentState
87+
:members:
88+
89+
.. autoclass:: splunklib.ai.middleware.AgentRequest
90+
:members:
91+
92+
.. autoclass:: splunklib.ai.middleware.ModelRequest
93+
:members:
94+
95+
.. autoclass:: splunklib.ai.middleware.ModelResponse
96+
:members:
97+
98+
.. autoclass:: splunklib.ai.middleware.ToolRequest
99+
:members:
100+
101+
.. autoclass:: splunklib.ai.middleware.ToolResponse
102+
:members:
103+
104+
.. autoclass:: splunklib.ai.middleware.SubagentRequest
105+
:members:
106+
107+
.. autoclass:: splunklib.ai.middleware.SubagentResponse
108+
:members:
109+
110+
.. rubric:: Limits
111+
112+
.. autoclass:: splunklib.ai.limits.AgentLimits
113+
:members:
114+
115+
.. autoexception:: splunklib.ai.limits.AgentStopException
116+
:members:
117+
118+
.. autoexception:: splunklib.ai.limits.TokenLimitExceededException
119+
:members:
120+
121+
.. autoexception:: splunklib.ai.limits.StepsLimitExceededException
122+
:members:
123+
124+
.. autoexception:: splunklib.ai.limits.TimeoutExceededException
125+
:members:
126+
127+
.. autoexception:: splunklib.ai.limits.StructuredOutputRetryLimitExceededException
128+
:members:
129+
130+
.. rubric:: Tool settings
131+
132+
.. autoclass:: splunklib.ai.tool_settings.ToolSettings
133+
:members:
134+
135+
.. autoclass:: splunklib.ai.tool_settings.LocalToolSettings
136+
:members:
137+
138+
.. autoclass:: splunklib.ai.tool_settings.RemoteToolSettings
139+
:members:
140+
141+
.. autoclass:: splunklib.ai.tool_settings.ToolAllowlist
142+
:members:
143+
144+
.. rubric:: Conversation store
145+
146+
.. autoclass:: splunklib.ai.conversation_store.ConversationStore
147+
:members:
148+
149+
.. autoclass:: splunklib.ai.conversation_store.InMemoryStore
150+
:members:
151+
152+
.. rubric:: Security
153+
154+
.. autofunction:: splunklib.ai.security.detect_injection
155+
156+
.. autofunction:: splunklib.ai.security.truncate_input
157+
158+
.. autofunction:: splunklib.ai.security.create_structured_prompt

‎docs/index.rst‎

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ For more information, see the `Splunk Developer Portal <http://dev.splunk.com/vi
1212
modularinput
1313
searchcommands
1414
searchcommandsvalidators
15+
ai
1516

1617

1718
:doc:`binding`
@@ -139,7 +140,7 @@ For more information, see the `Splunk Developer Portal <http://dev.splunk.com/vi
139140
:doc:`results`
140141
--------------
141142

142-
:class:`~splunklib.results.ResultsReader` class
143+
:class:`~splunklib.results.JSONResultsReader` class
143144

144145
:class:`~splunklib.results.Message` class
145146

@@ -171,4 +172,59 @@ For more information, see the `Splunk Developer Portal <http://dev.splunk.com/vi
171172

172173
:class:`~splunklib.searchcommands.StreamingCommand` class
173174

175+
:class:`~splunklib.searchcommands.ExternalSearchCommand` class
176+
174177
:class:`~splunklib.searchcommands.Option` class
178+
179+
:func:`~splunklib.searchcommands.dispatch` function
180+
181+
:func:`~splunklib.searchcommands.execute` function
182+
183+
:data:`~splunklib.searchcommands.SearchMetric`
184+
185+
:doc:`ai`
186+
---------
187+
188+
:class:`~splunklib.ai.agent.Agent` class
189+
190+
**Models**
191+
192+
:class:`~splunklib.ai.model.AnthropicModel` class
193+
194+
:class:`~splunklib.ai.model.OpenAIModel` class
195+
196+
:class:`~splunklib.ai.model.GoogleModel` class
197+
198+
**Messages**
199+
200+
:class:`~splunklib.ai.messages.HumanMessage` class
201+
202+
:class:`~splunklib.ai.messages.AIMessage` class
203+
204+
:class:`~splunklib.ai.messages.AgentResponse` class
205+
206+
**Middleware**
207+
208+
:class:`~splunklib.ai.middleware.AgentMiddleware` class
209+
210+
**Limits**
211+
212+
:class:`~splunklib.ai.limits.AgentLimits` class
213+
214+
**Tool settings**
215+
216+
:class:`~splunklib.ai.tool_settings.ToolSettings` class
217+
218+
**Conversation store**
219+
220+
:class:`~splunklib.ai.conversation_store.ConversationStore` class
221+
222+
:class:`~splunklib.ai.conversation_store.InMemoryStore` class
223+
224+
**Security**
225+
226+
:func:`~splunklib.ai.security.detect_injection` function
227+
228+
:func:`~splunklib.ai.security.truncate_input` function
229+
230+
:func:`~splunklib.ai.security.create_structured_prompt` function

‎docs/results.rst‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@ splunklib.results
44
.. automodule:: splunklib.results
55

66
.. autoclass:: Message
7+
:members:
78

89
.. autoclass:: JSONResultsReader
10+
:members:

‎docs/searchcommands.rst‎

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -72,31 +72,22 @@ splunklib.searchcommands
7272
:inherited-members:
7373
:exclude-members: Item, View, fix_up
7474

75-
.. autoclass:: Boolean
75+
.. autoclass:: ExternalSearchCommand
7676
:members:
77-
:inherited-members:
7877

79-
.. autoclass:: Duration
80-
:members:
81-
:inherited-members:
78+
.. autofunction:: execute
8279

83-
.. autoclass:: File
84-
:members:
85-
:inherited-members:
80+
.. autodata:: SearchMetric
8681

87-
.. autoclass:: Integer
88-
:members:
89-
:inherited-members:
82+
.. rubric:: Environment helpers
9083

91-
.. autoclass:: Float
92-
:members:
93-
:inherited-members:
84+
.. autodata:: app_file
9485

95-
.. autoclass:: RegularExpression
96-
:members:
97-
:inherited-members:
86+
.. autodata:: app_root
9887

99-
.. autoclass:: Set
100-
:members:
101-
:inherited-members:
88+
.. autodata:: logging_configuration
89+
90+
.. autodata:: splunk_home
91+
92+
.. autodata:: splunklib_logger
10293

‎docs/searchcommandsvalidators.rst‎

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,58 @@ splunklib.searchcommands.validators
33

44
.. automodule:: splunklib.searchcommands.validators
55

6+
.. autoclass:: Validator
7+
:members:
8+
:inherited-members:
9+
10+
.. autoclass:: Boolean
11+
:members:
12+
:inherited-members:
13+
14+
.. autoclass:: Code
15+
:members:
16+
:inherited-members:
17+
18+
.. autoclass:: Duration
19+
:members:
20+
:inherited-members:
21+
622
.. autoclass:: Fieldname
723
:members:
824
:inherited-members:
925

10-
.. autoclass:: Validator
26+
.. autoclass:: File
27+
:members:
28+
:inherited-members:
29+
30+
.. autoclass:: Float
31+
:members:
32+
:inherited-members:
33+
34+
.. autoclass:: Integer
35+
:members:
36+
:inherited-members:
37+
38+
.. autoclass:: List
39+
:members:
40+
:inherited-members:
41+
42+
.. autoclass:: Map
43+
:members:
44+
:inherited-members:
45+
46+
.. autoclass:: Match
47+
:members:
48+
:inherited-members:
49+
50+
.. autoclass:: OptionName
51+
:members:
52+
:inherited-members:
53+
54+
.. autoclass:: RegularExpression
55+
:members:
56+
:inherited-members:
57+
58+
.. autoclass:: Set
1159
:members:
1260
:inherited-members:

‎splunklib/ai/agent.py‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ class Agent(BaseAgent[OutputT]):
6060
6161
Agents are async context managers and must be used with `async with`:
6262
63+
.. code-block:: python
64+
6365
async with Agent(
6466
model=model,
6567
system_prompt="You are a helpful Splunk assistant.",
@@ -80,9 +82,9 @@ class Agent(BaseAgent[OutputT]):
8082
8183
tool_settings:
8284
Optional `ToolSettings` instance controlling which MCP tools are
83-
loaded and exposed to the model. When provided, the agent loads:
84-
* Local tools via `ToolSettings.local` (registered in `<app_path>/bin/tools.py`).
85-
* Remote tools via `ToolSettings.remote` (requires Splunk MCP Server App present on SH).
85+
loaded and exposed to the model. When provided, the agent loads
86+
local tools via ``ToolSettings.local`` (registered in ``<app_path>/bin/tools.py``)
87+
and remote tools via ``ToolSettings.remote`` (requires Splunk MCP Server App present on SH).
8688
8789
Each sub-setting accepts an optional allowlist to restrict which
8890
tools are exposed. No tools are loaded by default.

‎splunklib/ai/security.py‎

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,14 @@ def create_structured_prompt(instructions: str, data: str | dict[str, Any]) -> s
7070
external data (alert payloads, log entries, API responses, etc.) to reduce
7171
the risk of indirect prompt injection.
7272
73-
Example:
74-
HumanMessage(content=create_structured_prompt(
75-
instructions="Summarize this security alert and assess its severity.",
76-
data=alert_payload,
77-
))
73+
Example::
74+
75+
HumanMessage(
76+
content=create_structured_prompt(
77+
instructions="Summarize this security alert and assess its severity.",
78+
data=alert_payload,
79+
)
80+
)
7881
"""
7982
return (
8083
f"INSTRUCTIONS:\n"

0 commit comments

Comments
 (0)