@pellux/goodvibes-agent 1.0.31 → 1.0.34
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.md +59 -2
- package/README.md +72 -58
- package/dist/package/main.js +7572 -2430
- package/docs/README.md +25 -21
- package/docs/channels-remote-and-api.md +6 -2
- package/docs/connected-host.md +27 -6
- package/docs/getting-started.md +87 -66
- package/docs/knowledge-artifacts-and-multimodal.md +16 -4
- package/docs/project-planning.md +2 -2
- package/docs/providers-and-routing.md +3 -2
- package/docs/release-and-publishing.md +15 -11
- package/docs/tools-and-commands.md +150 -128
- package/docs/voice-and-live-tts.md +1 -1
- package/package.json +8 -3
- package/release/live-verification/live-verification.json +148 -0
- package/release/live-verification/live-verification.md +187 -0
- package/release/performance-snapshot.json +57 -0
- package/release/release-notes.md +19 -0
- package/release/release-readiness.json +581 -0
- package/src/agent/harness-control.ts +42 -3
- package/src/cli/agent-knowledge-command.ts +5 -5
- package/src/cli/agent-knowledge-format.ts +11 -0
- package/src/cli/agent-knowledge-runtime.ts +92 -13
- package/src/cli/bundle-command.ts +5 -4
- package/src/cli/entrypoint.ts +5 -2
- package/src/cli/external-runtime.ts +2 -15
- package/src/cli/management.ts +4 -3
- package/src/input/commands/guidance-runtime.ts +1 -1
- package/src/input/commands/knowledge.ts +2 -2
- package/src/runtime/bootstrap.ts +10 -18
- package/src/runtime/connected-host-auth.ts +16 -0
- package/src/tools/agent-analysis-registry-policy.ts +2 -9
- package/src/tools/agent-channel-send-tool.ts +3 -9
- package/src/tools/agent-context-policy.ts +1 -5
- package/src/tools/agent-find-policy.ts +1 -4
- package/src/tools/agent-harness-channel-metadata.ts +177 -0
- package/src/tools/agent-harness-cli-metadata.ts +4 -1
- package/src/tools/agent-harness-command-catalog.ts +10 -3
- package/src/tools/agent-harness-connected-host-status.ts +9 -3
- package/src/tools/agent-harness-delegation-posture.ts +216 -0
- package/src/tools/agent-harness-keybinding-metadata.ts +57 -22
- package/src/tools/agent-harness-mcp-metadata.ts +248 -0
- package/src/tools/agent-harness-media-posture.ts +282 -0
- package/src/tools/agent-harness-metadata.ts +44 -9
- package/src/tools/agent-harness-model-routing.ts +501 -0
- package/src/tools/agent-harness-model-tool-catalog.ts +7 -2
- package/src/tools/agent-harness-notification-metadata.ts +217 -0
- package/src/tools/agent-harness-operator-methods.ts +285 -0
- package/src/tools/agent-harness-pairing-posture.ts +265 -0
- package/src/tools/agent-harness-panel-metadata.ts +26 -12
- package/src/tools/agent-harness-provider-account-metadata.ts +205 -0
- package/src/tools/agent-harness-release-evidence.ts +364 -0
- package/src/tools/agent-harness-release-readiness.ts +298 -0
- package/src/tools/agent-harness-security-posture.ts +648 -0
- package/src/tools/agent-harness-service-posture.ts +207 -0
- package/src/tools/agent-harness-session-metadata.ts +284 -0
- package/src/tools/agent-harness-setup-posture.ts +295 -0
- package/src/tools/agent-harness-tool-schema.ts +104 -27
- package/src/tools/agent-harness-tool.ts +251 -235
- package/src/tools/agent-harness-ui-surface-metadata.ts +20 -12
- package/src/tools/agent-harness-workspace-actions.ts +260 -0
- package/src/tools/agent-knowledge-ingest-tool.ts +4 -10
- package/src/tools/agent-knowledge-tool.ts +120 -25
- package/src/tools/agent-local-registry-tool.ts +3 -7
- package/src/tools/agent-media-generate-tool.ts +2 -8
- package/src/tools/agent-notify-tool.ts +3 -8
- package/src/tools/agent-operator-action-tool.ts +4 -10
- package/src/tools/agent-operator-briefing-tool.ts +1 -6
- package/src/tools/agent-read-policy.ts +1 -4
- package/src/tools/agent-reminder-schedule-tool.ts +4 -9
- package/src/tools/agent-tool-policy-guard.ts +15 -51
- package/src/tools/agent-web-search-policy.ts +1 -4
- package/src/tools/agent-work-plan-tool.ts +1 -6
- package/src/version.ts +2 -2
|
@@ -78,18 +78,13 @@ export function createAgentNotifyTool(
|
|
|
78
78
|
return {
|
|
79
79
|
definition: {
|
|
80
80
|
name: 'agent_notify',
|
|
81
|
-
description:
|
|
82
|
-
'Send one plain-text notification to configured GoodVibes Agent webhook notification targets from the main conversation.',
|
|
83
|
-
'Use only when the user explicitly asks Agent to notify, message, alert, or send a configured notification.',
|
|
84
|
-
'This uses Agent-local notification webhook targets; it does not create channel routes, authorize accounts, manage connected-host hosting, create separate Agent jobs, run delegated review, or write to default knowledge or non-Agent knowledge segments.',
|
|
85
|
-
'Set confirm:true only for an explicit user request. Otherwise return the preview/confirmation error.',
|
|
86
|
-
].join(' '),
|
|
81
|
+
description: 'Send one confirmed plain-text notification.',
|
|
87
82
|
parameters: {
|
|
88
83
|
type: 'object',
|
|
89
84
|
properties: {
|
|
90
85
|
message: {
|
|
91
86
|
type: 'string',
|
|
92
|
-
description: 'Plain-text notification body
|
|
87
|
+
description: 'Plain-text notification body.',
|
|
93
88
|
},
|
|
94
89
|
confirm: {
|
|
95
90
|
type: 'boolean',
|
|
@@ -97,7 +92,7 @@ export function createAgentNotifyTool(
|
|
|
97
92
|
},
|
|
98
93
|
explicitUserRequest: {
|
|
99
94
|
type: 'string',
|
|
100
|
-
description: '
|
|
95
|
+
description: 'User request authorizing this notification.',
|
|
101
96
|
},
|
|
102
97
|
},
|
|
103
98
|
required: ['message', 'confirm', 'explicitUserRequest'],
|
|
@@ -35,13 +35,7 @@ export function createAgentOperatorActionTool(
|
|
|
35
35
|
return {
|
|
36
36
|
definition: {
|
|
37
37
|
name: 'agent_operator_action',
|
|
38
|
-
description:
|
|
39
|
-
'Perform one explicit, confirmed connected-host operator action from the main conversation.',
|
|
40
|
-
'Allowed actions are approvals.approve, approvals.deny, approvals.cancel, automation.jobs.run, automation.jobs.pause, automation.jobs.resume, automation.runs.cancel, automation.runs.retry, and schedules.run.',
|
|
41
|
-
'Use only when the user explicitly asks for that exact approval, automation job, automation run, or schedule action.',
|
|
42
|
-
'This tool never creates, edits, deletes, or discovers automation definitions; never manages connected-host hosting; never uses default knowledge, non-Agent knowledge segments, separate Agent jobs, delegated review, or arbitrary route invocation.',
|
|
43
|
-
'Set confirm:true only for an explicit user request. Otherwise return the preview/confirmation error.',
|
|
44
|
-
].join(' '),
|
|
38
|
+
description: 'Run one confirmed allowlisted operator action.',
|
|
45
39
|
parameters: {
|
|
46
40
|
type: 'object',
|
|
47
41
|
properties: {
|
|
@@ -52,7 +46,7 @@ export function createAgentOperatorActionTool(
|
|
|
52
46
|
},
|
|
53
47
|
targetId: {
|
|
54
48
|
type: 'string',
|
|
55
|
-
description: 'Generic target id.
|
|
49
|
+
description: 'Generic target id.',
|
|
56
50
|
},
|
|
57
51
|
approvalId: {
|
|
58
52
|
type: 'string',
|
|
@@ -60,7 +54,7 @@ export function createAgentOperatorActionTool(
|
|
|
60
54
|
},
|
|
61
55
|
jobId: {
|
|
62
56
|
type: 'string',
|
|
63
|
-
description: 'Automation job id
|
|
57
|
+
description: 'Automation job id.',
|
|
64
58
|
},
|
|
65
59
|
runId: {
|
|
66
60
|
type: 'string',
|
|
@@ -80,7 +74,7 @@ export function createAgentOperatorActionTool(
|
|
|
80
74
|
},
|
|
81
75
|
confirm: {
|
|
82
76
|
type: 'boolean',
|
|
83
|
-
description: 'Required true
|
|
77
|
+
description: 'Required true for confirmed operator action.',
|
|
84
78
|
},
|
|
85
79
|
explicitUserRequest: {
|
|
86
80
|
type: 'string',
|
|
@@ -175,12 +175,7 @@ export function createAgentOperatorBriefingTool(
|
|
|
175
175
|
return {
|
|
176
176
|
definition: {
|
|
177
177
|
name: 'agent_operator_briefing',
|
|
178
|
-
description:
|
|
179
|
-
'Read connected GoodVibes operator state for a concise main-conversation briefing.',
|
|
180
|
-
'Use when the user asks what needs attention, what is pending, what is scheduled, or what the operator status is.',
|
|
181
|
-
'This is read-only and calls only public work-plan, approvals, automation, schedules, and scheduler routes.',
|
|
182
|
-
'It never uses default knowledge, non-Agent knowledge segments, channel send routes, mutation routes, connected-host lifecycle, separate Agent jobs, or delegated review.',
|
|
183
|
-
].join(' '),
|
|
178
|
+
description: 'Read connected Agent operator state for a concise briefing.',
|
|
184
179
|
parameters: {
|
|
185
180
|
type: 'object',
|
|
186
181
|
properties: {},
|
|
@@ -126,10 +126,7 @@ export function isBlockedReadPath(path: string): boolean {
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
function narrowReadToolDefinitionForAgentPolicy(tool: Tool): void {
|
|
129
|
-
tool.definition.description =
|
|
130
|
-
'Read ordinary project files for GoodVibes Agent with bounded, non-secret, main-conversation policy.',
|
|
131
|
-
'Hidden paths, secret-looking files, broad batches, unoptimized image extraction, and oversized image reads are disabled.',
|
|
132
|
-
].join(' ');
|
|
129
|
+
tool.definition.description = 'Read ordinary non-secret project files for GoodVibes Agent.';
|
|
133
130
|
tool.definition.sideEffects = ['read_fs'];
|
|
134
131
|
tool.definition.concurrency = 'serial';
|
|
135
132
|
|
|
@@ -120,12 +120,7 @@ export function createAgentReminderScheduleTool(
|
|
|
120
120
|
return {
|
|
121
121
|
definition: {
|
|
122
122
|
name: 'agent_reminder_schedule',
|
|
123
|
-
description:
|
|
124
|
-
'Create one connected GoodVibes Agent reminder schedule from the main conversation.',
|
|
125
|
-
'Use only when the user explicitly asks to be reminded or asks Agent to schedule a reminder.',
|
|
126
|
-
'This calls the public schedules.create route on the connected GoodVibes host; it does not manage connected-host hosting, create a local scheduler, create separate Agent jobs, use delegated review, or write to default knowledge or non-Agent knowledge segments.',
|
|
127
|
-
'Set confirm:true only for an explicit user request. Otherwise return the preview/confirmation error.',
|
|
128
|
-
].join(' '),
|
|
123
|
+
description: 'Schedule one confirmed GoodVibes Agent reminder.',
|
|
129
124
|
parameters: {
|
|
130
125
|
type: 'object',
|
|
131
126
|
properties: {
|
|
@@ -136,7 +131,7 @@ export function createAgentReminderScheduleTool(
|
|
|
136
131
|
scheduleKind: {
|
|
137
132
|
type: 'string',
|
|
138
133
|
enum: [...SCHEDULE_KINDS],
|
|
139
|
-
description: 'Schedule
|
|
134
|
+
description: 'Schedule kind: at, every, or cron.',
|
|
140
135
|
},
|
|
141
136
|
scheduleValue: {
|
|
142
137
|
type: 'string',
|
|
@@ -160,7 +155,7 @@ export function createAgentReminderScheduleTool(
|
|
|
160
155
|
},
|
|
161
156
|
deliveryChannel: {
|
|
162
157
|
type: 'string',
|
|
163
|
-
description: 'Optional delivery channel target
|
|
158
|
+
description: 'Optional delivery channel target.',
|
|
164
159
|
},
|
|
165
160
|
deliveryRoute: {
|
|
166
161
|
type: 'string',
|
|
@@ -184,7 +179,7 @@ export function createAgentReminderScheduleTool(
|
|
|
184
179
|
},
|
|
185
180
|
explicitUserRequest: {
|
|
186
181
|
type: 'string',
|
|
187
|
-
description: '
|
|
182
|
+
description: 'User request authorizing this reminder.',
|
|
188
183
|
},
|
|
189
184
|
},
|
|
190
185
|
required: ['message', 'scheduleKind', 'scheduleValue', 'confirm', 'explicitUserRequest'],
|
|
@@ -206,10 +206,7 @@ export function installAgentToolPolicyGuard(registry: ToolRegistry, options: Age
|
|
|
206
206
|
wrapModeRestrictedToolForAgentPolicy(tool, {
|
|
207
207
|
allowedModes: READ_ONLY_REMOTE_TOOL_MODES,
|
|
208
208
|
modeSet: READ_ONLY_REMOTE_TOOL_MODE_SET,
|
|
209
|
-
description:
|
|
210
|
-
'Read-only remote build-host inspection for GoodVibes Agent.',
|
|
211
|
-
'Pool creation, host assignment, unassignment, and artifact import are disabled in the main conversation.',
|
|
212
|
-
].join(' '),
|
|
209
|
+
description: 'Read-only remote build-host inspection. Mutations are disabled in Agent.',
|
|
213
210
|
denial: REMOTE_MUTATION_DENIAL,
|
|
214
211
|
});
|
|
215
212
|
} else if (tool.definition.name === 'channel') {
|
|
@@ -218,10 +215,7 @@ export function installAgentToolPolicyGuard(registry: ToolRegistry, options: Age
|
|
|
218
215
|
wrapModeRestrictedToolForAgentPolicy(tool, {
|
|
219
216
|
allowedModes: READ_ONLY_MCP_TOOL_MODES,
|
|
220
217
|
modeSet: READ_ONLY_MCP_TOOL_MODE_SET,
|
|
221
|
-
description:
|
|
222
|
-
'Read-only MCP inspection for GoodVibes Agent.',
|
|
223
|
-
'Quarantine approval, trust mutation, and role mutation are disabled in the main conversation.',
|
|
224
|
-
].join(' '),
|
|
218
|
+
description: 'Read-only MCP inspection. Mutations are disabled in Agent.',
|
|
225
219
|
denial: MCP_SECURITY_MUTATION_DENIAL,
|
|
226
220
|
});
|
|
227
221
|
} else if (tool.definition.name === 'fetch') {
|
|
@@ -246,17 +240,14 @@ export function installAgentToolPolicyGuard(registry: ToolRegistry, options: Age
|
|
|
246
240
|
wrapModeRestrictedToolForAgentPolicy(tool, {
|
|
247
241
|
allowedModes: READ_ONLY_CONTROL_TOOL_MODES,
|
|
248
242
|
modeSet: READ_ONLY_CONTROL_TOOL_MODE_SET,
|
|
249
|
-
description:
|
|
250
|
-
'Read-only product-control inspection for GoodVibes Agent.',
|
|
251
|
-
'Command, panel, and subscription catalogs can be inspected, but product-control mutation and connected-host lifecycle are external.',
|
|
252
|
-
].join(' '),
|
|
243
|
+
description: 'Read-only product-control inspection. Mutations are external.',
|
|
253
244
|
denial: CONTROL_MUTATION_DENIAL,
|
|
254
245
|
});
|
|
255
246
|
} else if (tool.definition.name === 'task') {
|
|
256
247
|
wrapModeRestrictedToolForAgentPolicy(tool, {
|
|
257
248
|
allowedModes: READ_ONLY_TASK_TOOL_MODES,
|
|
258
249
|
modeSet: READ_ONLY_TASK_TOOL_MODE_SET,
|
|
259
|
-
description: 'Read-only task/workflow inspection
|
|
250
|
+
description: 'Read-only task/workflow inspection. Mutations are disabled in Agent.',
|
|
260
251
|
denial: DURABLE_WORKFLOW_MUTATION_DENIAL,
|
|
261
252
|
removedProperties: ['title', 'label', 'status', 'dependsOnSessionId', 'dependsOnTaskId', 'reason', 'toSessionId'],
|
|
262
253
|
});
|
|
@@ -264,7 +255,7 @@ export function installAgentToolPolicyGuard(registry: ToolRegistry, options: Age
|
|
|
264
255
|
wrapModeRestrictedToolForAgentPolicy(tool, {
|
|
265
256
|
allowedModes: READ_ONLY_TEAM_TOOL_MODES,
|
|
266
257
|
modeSet: READ_ONLY_TEAM_TOOL_MODE_SET,
|
|
267
|
-
description: 'Read-only team inspection
|
|
258
|
+
description: 'Read-only team inspection. Mutations are disabled in Agent.',
|
|
268
259
|
denial: DURABLE_WORKFLOW_MUTATION_DENIAL,
|
|
269
260
|
removedProperties: ['name', 'summary', 'memberId', 'role', 'lanes'],
|
|
270
261
|
});
|
|
@@ -272,7 +263,7 @@ export function installAgentToolPolicyGuard(registry: ToolRegistry, options: Age
|
|
|
272
263
|
wrapModeRestrictedToolForAgentPolicy(tool, {
|
|
273
264
|
allowedModes: READ_ONLY_WORKLIST_TOOL_MODES,
|
|
274
265
|
modeSet: READ_ONLY_WORKLIST_TOOL_MODE_SET,
|
|
275
|
-
description: 'Read-only worklist inspection
|
|
266
|
+
description: 'Read-only worklist inspection. Mutations are disabled in Agent.',
|
|
276
267
|
denial: DURABLE_WORKFLOW_MUTATION_DENIAL,
|
|
277
268
|
removedProperties: ['title', 'itemId', 'text', 'owner', 'priority'],
|
|
278
269
|
});
|
|
@@ -280,7 +271,7 @@ export function installAgentToolPolicyGuard(registry: ToolRegistry, options: Age
|
|
|
280
271
|
wrapModeRestrictedToolForAgentPolicy(tool, {
|
|
281
272
|
allowedModes: READ_ONLY_PACKET_TOOL_MODES,
|
|
282
273
|
modeSet: READ_ONLY_PACKET_TOOL_MODE_SET,
|
|
283
|
-
description: 'Read-only operator packet inspection
|
|
274
|
+
description: 'Read-only operator packet inspection. Mutations are disabled in Agent.',
|
|
284
275
|
denial: DURABLE_WORKFLOW_MUTATION_DENIAL,
|
|
285
276
|
removedProperties: ['title', 'summary', 'goals', 'constraints', 'risks', 'audience'],
|
|
286
277
|
});
|
|
@@ -288,7 +279,7 @@ export function installAgentToolPolicyGuard(registry: ToolRegistry, options: Age
|
|
|
288
279
|
wrapModeRestrictedToolForAgentPolicy(tool, {
|
|
289
280
|
allowedModes: READ_ONLY_QUERY_TOOL_MODES,
|
|
290
281
|
modeSet: READ_ONLY_QUERY_TOOL_MODE_SET,
|
|
291
|
-
description: 'Read-only operator query inspection
|
|
282
|
+
description: 'Read-only operator query inspection. Mutations are disabled in Agent.',
|
|
292
283
|
denial: DURABLE_WORKFLOW_MUTATION_DENIAL,
|
|
293
284
|
removedProperties: ['prompt', 'askedBy', 'target', 'answer', 'resolution'],
|
|
294
285
|
});
|
|
@@ -318,11 +309,7 @@ export function normalizeAgentToolInvocationForAgentPolicy(args: AgentToolArgs):
|
|
|
318
309
|
}
|
|
319
310
|
|
|
320
311
|
export function wrapBlockedMainConversationToolForAgentPolicy(tool: Tool): void {
|
|
321
|
-
tool.definition.description =
|
|
322
|
-
`Blocked in GoodVibes Agent main conversation: ${tool.definition.name}.`,
|
|
323
|
-
'Use explicit GoodVibes TUI build delegation for build/fix/review/code execution work.',
|
|
324
|
-
'Use Agent-owned local registries and isolated Agent Knowledge routes for Agent memory and knowledge work.',
|
|
325
|
-
].join(' ');
|
|
312
|
+
tool.definition.description = `Blocked in GoodVibes Agent: ${tool.definition.name}.`;
|
|
326
313
|
tool.definition.sideEffects = [];
|
|
327
314
|
tool.execute = async () => ({ success: false, error: LOCAL_CODING_TOOL_DENIAL });
|
|
328
315
|
}
|
|
@@ -358,11 +345,7 @@ export function wrapStateToolForAgentPolicy(tool: Tool): void {
|
|
|
358
345
|
}
|
|
359
346
|
|
|
360
347
|
export function wrapBlockedSettingsToolForAgentPolicy(tool: Tool): void {
|
|
361
|
-
tool.definition.description =
|
|
362
|
-
'Blocked in GoodVibes Agent main conversation: configuration mutation.',
|
|
363
|
-
'Use explicit Agent CLI/slash settings commands for intentional config changes.',
|
|
364
|
-
'Connected-host lifecycle and service exposure remain externally managed outside GoodVibes Agent.',
|
|
365
|
-
].join(' ');
|
|
348
|
+
tool.definition.description = 'Blocked in GoodVibes Agent: configuration mutation.';
|
|
366
349
|
tool.definition.sideEffects = [];
|
|
367
350
|
tool.definition.parameters = {
|
|
368
351
|
type: 'object',
|
|
@@ -612,11 +595,7 @@ function isPresent(value: unknown): boolean {
|
|
|
612
595
|
}
|
|
613
596
|
|
|
614
597
|
function narrowAgentToolDefinitionForAgentPolicy(tool: Tool): void {
|
|
615
|
-
tool.definition.description =
|
|
616
|
-
'Read-only local Agent inspection for GoodVibes Agent.',
|
|
617
|
-
'This product does not create separate Agent jobs or run local delegated review chains.',
|
|
618
|
-
'For build/fix/review work, delegate to GoodVibes TUI through the explicit build-delegation path instead.',
|
|
619
|
-
].join(' ');
|
|
598
|
+
tool.definition.description = 'Read-only local Agent inspection for GoodVibes Agent.';
|
|
620
599
|
tool.definition.sideEffects = [];
|
|
621
600
|
|
|
622
601
|
const properties = tool.definition.parameters.properties;
|
|
@@ -628,11 +607,7 @@ function narrowAgentToolDefinitionForAgentPolicy(tool: Tool): void {
|
|
|
628
607
|
}
|
|
629
608
|
|
|
630
609
|
function narrowExecToolDefinitionForAgentPolicy(tool: Tool): void {
|
|
631
|
-
tool.definition.description =
|
|
632
|
-
'Execute foreground shell commands serially for GoodVibes Agent main-conversation work.',
|
|
633
|
-
'Background processes, parallel batches, background process controls, and exec file_ops are disabled by Agent policy.',
|
|
634
|
-
'Delegate long-running build/fix/review execution to GoodVibes TUI instead.',
|
|
635
|
-
].join(' ');
|
|
610
|
+
tool.definition.description = 'Execute foreground shell commands serially for GoodVibes Agent.';
|
|
636
611
|
|
|
637
612
|
const properties = tool.definition.parameters.properties;
|
|
638
613
|
if (!isRecord(properties)) return;
|
|
@@ -657,11 +632,7 @@ function narrowExecToolDefinitionForAgentPolicy(tool: Tool): void {
|
|
|
657
632
|
}
|
|
658
633
|
|
|
659
634
|
function narrowFetchToolDefinitionForAgentPolicy(tool: Tool): void {
|
|
660
|
-
tool.definition.description =
|
|
661
|
-
'Fetch public URLs for GoodVibes Agent with serial, read-only HTTP requests.',
|
|
662
|
-
'Only GET, HEAD, and OPTIONS are available in the main conversation.',
|
|
663
|
-
'Credentialed requests, request bodies, trust overrides, raw unsanitized responses, and parallel batches are disabled by Agent policy.',
|
|
664
|
-
].join(' ');
|
|
635
|
+
tool.definition.description = 'Fetch public URLs with serial, read-only HTTP requests.';
|
|
665
636
|
|
|
666
637
|
const properties = tool.definition.parameters.properties;
|
|
667
638
|
if (!isRecord(properties)) return;
|
|
@@ -698,11 +669,7 @@ function narrowFetchToolDefinitionForAgentPolicy(tool: Tool): void {
|
|
|
698
669
|
}
|
|
699
670
|
|
|
700
671
|
function narrowStateToolDefinitionForAgentPolicy(tool: Tool): void {
|
|
701
|
-
tool.definition.description =
|
|
702
|
-
'Inspect runtime-owned state for GoodVibes Agent.',
|
|
703
|
-
'State mutation, runtime-owned memory writes, hook changes, output-mode changes, and analytics writes are disabled in the main conversation.',
|
|
704
|
-
'Use Agent-owned commands for intentional memory, skill, persona, and routine changes.',
|
|
705
|
-
].join(' ');
|
|
672
|
+
tool.definition.description = 'Inspect runtime-owned state for GoodVibes Agent.';
|
|
706
673
|
|
|
707
674
|
const properties = tool.definition.parameters.properties;
|
|
708
675
|
if (!isRecord(properties)) return;
|
|
@@ -732,10 +699,7 @@ function narrowStateToolDefinitionForAgentPolicy(tool: Tool): void {
|
|
|
732
699
|
}
|
|
733
700
|
|
|
734
701
|
function narrowInspectToolDefinitionForAgentPolicy(tool: Tool): void {
|
|
735
|
-
tool.definition.description =
|
|
736
|
-
'Inspect and analyze project structure for GoodVibes Agent.',
|
|
737
|
-
'Scaffold mode is dry-run-only in the main conversation; code creation must be delegated to GoodVibes TUI.',
|
|
738
|
-
].join(' ');
|
|
702
|
+
tool.definition.description = 'Inspect and analyze project structure for GoodVibes Agent.';
|
|
739
703
|
|
|
740
704
|
const properties = tool.definition.parameters.properties;
|
|
741
705
|
if (!isRecord(properties)) return;
|
|
@@ -73,10 +73,7 @@ export function normalizeWebSearchToolInvocationForAgentPolicy(args: WebSearchTo
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
function narrowWebSearchToolDefinitionForAgentPolicy(tool: Tool): void {
|
|
76
|
-
tool.definition.description =
|
|
77
|
-
'Run bounded, read-only web research for GoodVibes Agent.',
|
|
78
|
-
'Full-page/raw/summary extraction, safe-search off, and high-fanout searches are disabled in the main conversation.',
|
|
79
|
-
].join(' ');
|
|
76
|
+
tool.definition.description = 'Run bounded, read-only web research for GoodVibes Agent.';
|
|
80
77
|
tool.definition.sideEffects = ['network'];
|
|
81
78
|
|
|
82
79
|
const properties = tool.definition.parameters.properties;
|
|
@@ -165,12 +165,7 @@ export function createAgentWorkPlanTool(store: WorkPlanStore): Tool {
|
|
|
165
165
|
return {
|
|
166
166
|
definition: {
|
|
167
167
|
name: 'agent_work_plan',
|
|
168
|
-
description:
|
|
169
|
-
'Inspect and maintain the visible GoodVibes Agent local work plan from the main conversation.',
|
|
170
|
-
'Use this to track concrete tasks the assistant is doing or has agreed to do, so the work is visible in the Agent TUI workspace.',
|
|
171
|
-
'This uses only Agent-local persisted work-plan state; it does not call connected-host mutation routes, start background jobs, create separate Agent jobs, use delegated review, write default knowledge, or use non-Agent knowledge segments.',
|
|
172
|
-
'Create, update, and set_status are safe local state actions. remove and clear_completed require confirm:true plus explicitUserRequest.',
|
|
173
|
-
].join(' '),
|
|
168
|
+
description: 'Inspect or update the visible Agent-local work plan.',
|
|
174
169
|
parameters: {
|
|
175
170
|
type: 'object',
|
|
176
171
|
properties: {
|
package/src/version.ts
CHANGED
|
@@ -6,8 +6,8 @@ import { join } from 'node:path';
|
|
|
6
6
|
// The prebuild script updates the fallback value before compilation.
|
|
7
7
|
// Uses import.meta.dir (Bun) to locate package.json relative to this file,
|
|
8
8
|
// which is correct regardless of the process working directory.
|
|
9
|
-
let _version = '1.0.
|
|
10
|
-
let _sdkVersion = '0.33.
|
|
9
|
+
let _version = '1.0.34';
|
|
10
|
+
let _sdkVersion = '0.33.36';
|
|
11
11
|
try {
|
|
12
12
|
const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', 'package.json'), 'utf-8')) as {
|
|
13
13
|
readonly version?: unknown;
|