@pellux/goodvibes-agent 1.5.5 → 1.5.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.
- package/CHANGELOG.md +9 -0
- package/README.md +1 -1
- package/dist/package/main.js +94130 -79335
- package/docs/tools-and-commands.md +2 -1
- package/package.json +6 -3
- package/src/agent/autonomy-schedule-format.ts +1 -1
- package/src/agent/autonomy-schedule.ts +3 -3
- package/src/agent/calendar/calendar-oauth-service.ts +324 -0
- package/src/agent/calendar-subscription-registry.ts +497 -0
- package/src/agent/email/email-service.ts +57 -0
- package/src/agent/email/smtp-client.ts +30 -10
- package/src/agent/memory-prompt.ts +143 -12
- package/src/agent/operator-actions.ts +26 -22
- package/src/agent/prompt-context-receipts.ts +45 -18
- package/src/agent/reminder-schedule-format.ts +1 -1
- package/src/agent/reminder-schedule.ts +3 -3
- package/src/agent/routine-schedule-format.ts +2 -2
- package/src/agent/routine-schedule-promotion.ts +5 -5
- package/src/agent/routine-schedule-receipts.ts +2 -2
- package/src/agent/schedule-edit-format.ts +1 -1
- package/src/agent/schedule-edit.ts +5 -5
- package/src/agent/session-registration.ts +281 -0
- package/src/agent/vibe-file.ts +50 -0
- package/src/cli/local-library-command-shared.ts +146 -0
- package/src/cli/management.ts +2 -1
- package/src/cli/personas-command.ts +252 -0
- package/src/cli/resume-relaunch-notice.ts +151 -0
- package/src/cli/routines-command.ts +25 -2
- package/src/cli/service-posture.ts +3 -2
- package/src/cli/skill-bundle-command.ts +175 -0
- package/src/cli/skills-command.ts +309 -0
- package/src/cli/status.ts +43 -7
- package/src/cli/tui-startup.ts +24 -1
- package/src/config/agent-settings-policy.ts +0 -1
- package/src/config/secret-config.ts +4 -0
- package/src/core/conversation-rendering.ts +20 -11
- package/src/core/focus-tracker.ts +41 -0
- package/src/core/system-message-noise.ts +108 -0
- package/src/core/system-message-router.ts +54 -1
- package/src/core/thinking-overlay.ts +83 -0
- package/src/input/agent-workspace-access-command-editor-submission.ts +75 -108
- package/src/input/agent-workspace-access-command-editors.ts +108 -128
- package/src/input/agent-workspace-activation.ts +15 -0
- package/src/input/agent-workspace-basic-command-editor-submission.ts +292 -513
- package/src/input/agent-workspace-basic-command-editors.ts +433 -564
- package/src/input/agent-workspace-calendar-connect-editor.ts +116 -0
- package/src/input/agent-workspace-calendar-oauth-editor.ts +152 -0
- package/src/input/agent-workspace-calendar-subscribe-editor.ts +128 -0
- package/src/input/agent-workspace-categories.ts +7 -2
- package/src/input/agent-workspace-channel-command-editor-submission.ts +38 -52
- package/src/input/agent-workspace-channel-command-editors.ts +42 -46
- package/src/input/agent-workspace-command-editor-engine.ts +133 -0
- package/src/input/agent-workspace-command-editor.ts +4 -0
- package/src/input/agent-workspace-direct-editor-submission.ts +59 -0
- package/src/input/agent-workspace-email-connect-editor.ts +162 -0
- package/src/input/agent-workspace-knowledge-command-editor-submission.ts +52 -81
- package/src/input/agent-workspace-knowledge-command-editors.ts +71 -71
- package/src/input/agent-workspace-library-command-editor-submission.ts +10 -28
- package/src/input/agent-workspace-library-command-editors.ts +16 -2
- package/src/input/agent-workspace-live-counters.ts +55 -0
- package/src/input/agent-workspace-mcp-command-editor-submission.ts +60 -82
- package/src/input/agent-workspace-mcp-command-editors.ts +52 -0
- package/src/input/agent-workspace-media-command-editor-submission.ts +12 -39
- package/src/input/agent-workspace-media-command-editors.ts +10 -8
- package/src/input/agent-workspace-memory-command-editor-submission.ts +76 -151
- package/src/input/agent-workspace-memory-command-editors.ts +116 -141
- package/src/input/agent-workspace-operations-command-editor-submission.ts +131 -184
- package/src/input/agent-workspace-operations-command-editors.ts +150 -162
- package/src/input/agent-workspace-provider-command-editor-submission.ts +60 -106
- package/src/input/agent-workspace-provider-command-editors.ts +58 -68
- package/src/input/agent-workspace-search.ts +8 -1
- package/src/input/agent-workspace-session-command-editor-submission.ts +104 -132
- package/src/input/agent-workspace-session-command-editors.ts +160 -195
- package/src/input/agent-workspace-settings.ts +40 -1
- package/src/input/agent-workspace-skill-bundle-command-editor-submission.ts +55 -71
- package/src/input/agent-workspace-skill-bundle-command-editors.ts +65 -69
- package/src/input/agent-workspace-snapshot-builders.ts +431 -0
- package/src/input/agent-workspace-snapshot-config.ts +43 -0
- package/src/input/agent-workspace-snapshot.ts +198 -432
- package/src/input/agent-workspace-task-command-editor-submission.ts +34 -44
- package/src/input/agent-workspace-task-command-editors.ts +27 -28
- package/src/input/agent-workspace-types.ts +35 -1
- package/src/input/agent-workspace.ts +5 -14
- package/src/input/command-registry.ts +23 -1
- package/src/input/commands/calendar-connect-runtime.ts +226 -0
- package/src/input/commands/calendar-runtime.ts +110 -7
- package/src/input/commands/calendar-subscription-runtime.ts +225 -0
- package/src/input/commands/email-runtime.ts +100 -40
- package/src/input/commands/knowledge.ts +1 -1
- package/src/input/commands/network-scan-runtime.ts +75 -0
- package/src/input/commands/operator-actions-runtime.ts +9 -6
- package/src/input/commands/personas-runtime.ts +1 -1
- package/src/input/commands/schedule-runtime.ts +4 -4
- package/src/input/commands/session-content.ts +13 -1
- package/src/input/commands/session-workflow.ts +15 -20
- package/src/input/commands/session.ts +3 -1
- package/src/input/commands/shell-core.ts +20 -6
- package/src/input/commands.ts +2 -2
- package/src/input/delete-key-policy.ts +46 -0
- package/src/input/feed-context-factory.ts +10 -0
- package/src/input/handler-feed.ts +87 -0
- package/src/input/handler-modal-routes.ts +6 -1
- package/src/input/handler.ts +5 -0
- package/src/input/panel-paste-flood-guard.ts +94 -0
- package/src/input/settings-modal-types.ts +5 -3
- package/src/input/settings-modal.ts +21 -0
- package/src/main.ts +36 -36
- package/src/permissions/approval-posture.ts +141 -0
- package/src/renderer/agent-workspace-context-lines.ts +10 -2
- package/src/renderer/compositor.ts +27 -4
- package/src/renderer/diff.ts +61 -18
- package/src/renderer/fullscreen-primitives.ts +37 -18
- package/src/renderer/markdown.ts +20 -10
- package/src/renderer/modal-factory.ts +25 -15
- package/src/renderer/overlay-box.ts +23 -12
- package/src/renderer/process-indicator.ts +8 -3
- package/src/renderer/prompt-content-width.ts +16 -0
- package/src/renderer/settings-modal-helpers.ts +2 -0
- package/src/renderer/settings-modal.ts +2 -0
- package/src/renderer/startup-theme-probe.ts +35 -0
- package/src/renderer/status-glyphs.ts +11 -15
- package/src/renderer/system-message.ts +17 -2
- package/src/renderer/term-caps.ts +318 -0
- package/src/renderer/terminal-bg-probe.ts +373 -0
- package/src/renderer/terminal-escapes.ts +24 -0
- package/src/renderer/theme-mode-config.ts +87 -0
- package/src/renderer/theme.ts +241 -0
- package/src/renderer/thinking.ts +12 -3
- package/src/renderer/tool-call.ts +7 -3
- package/src/renderer/ui-factory.ts +92 -36
- package/src/renderer/ui-primitives.ts +33 -93
- package/src/runtime/bootstrap-core.ts +15 -0
- package/src/runtime/bootstrap-hook-bridge.ts +6 -0
- package/src/runtime/bootstrap-shell.ts +2 -0
- package/src/runtime/bootstrap.ts +68 -5
- package/src/runtime/calendar-boot-refresh.ts +105 -0
- package/src/runtime/lan-scan-consent.ts +253 -0
- package/src/runtime/services.ts +127 -2
- package/src/runtime/session-spine-rest-transport.ts +160 -0
- package/src/runtime/terminal-output-guard.ts +6 -1
- package/src/runtime/ui-services.ts +3 -0
- package/src/shell/agent-workspace-fullscreen.ts +5 -0
- package/src/shell/terminal-focus-mode.ts +120 -0
- package/src/shell/ui-openers.ts +13 -4
- package/src/tools/agent-harness-autonomy-intake.ts +5 -5
- package/src/tools/agent-harness-autonomy-queue.ts +1 -1
- package/src/tools/agent-harness-background-processes.ts +2 -1
- package/src/tools/agent-harness-metadata.ts +16 -8
- package/src/tools/agent-harness-operator-methods.ts +44 -8
- package/src/tools/agent-harness-personal-ops-discovery.ts +57 -10
- package/src/tools/agent-harness-personal-ops-lanes.ts +17 -5
- package/src/tools/agent-harness-personal-ops-operations.ts +7 -7
- package/src/tools/agent-harness-personal-ops-types.ts +6 -0
- package/src/tools/agent-harness-prompt-context.ts +26 -12
- package/src/tools/agent-harness-workspace-actions.ts +4 -0
- package/src/tools/agent-local-registry-args.ts +117 -0
- package/src/tools/agent-local-registry-memory.ts +227 -0
- package/src/tools/agent-local-registry-tool.ts +19 -237
- package/src/tools/agent-operator-briefing-tool.ts +2 -2
- package/src/tools/agent-operator-method-tool.ts +13 -0
- package/src/tools/agent-policy-explanation.ts +39 -4
- package/src/tools/agent-schedule-tool.ts +5 -5
- package/src/utils/terminal-width.ts +98 -1
- package/src/version.ts +1 -1
- package/src/cli/local-library-command.ts +0 -825
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { AgentWorkspaceEditorKind, AgentWorkspaceLocalEditor } from './agent-workspace-types.ts';
|
|
2
|
+
import type { AgentWorkspaceEditorSpec, AgentWorkspaceEditorSpecEntry } from './agent-workspace-command-editor-engine.ts';
|
|
3
|
+
import { createAgentWorkspaceEditorFromTable } from './agent-workspace-command-editor-engine.ts';
|
|
2
4
|
|
|
3
5
|
export type AgentWorkspaceAccessCommandEditorKind = Extract<
|
|
4
6
|
AgentWorkspaceEditorKind,
|
|
@@ -31,134 +33,95 @@ export function isAgentWorkspaceAccessCommandEditorKind(kind: AgentWorkspaceEdit
|
|
|
31
33
|
|| kind === 'voice-bundle-inspect';
|
|
32
34
|
}
|
|
33
35
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
return {
|
|
124
|
-
kind,
|
|
125
|
-
mode: 'create',
|
|
126
|
-
title: 'Inspect Subscription Bundle',
|
|
127
|
-
selectedFieldIndex: 0,
|
|
128
|
-
message: 'Inspect a provider subscription bundle before setup review.',
|
|
129
|
-
fields: [
|
|
130
|
-
{ id: 'path', label: 'Bundle path', value: 'subscription-bundle.json', required: true, multiline: false, hint: 'Workspace-relative subscription bundle JSON path.' },
|
|
131
|
-
],
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
if (kind === 'voice-enable' || kind === 'voice-disable') {
|
|
135
|
-
const enabling = kind === 'voice-enable';
|
|
136
|
-
return {
|
|
137
|
-
kind,
|
|
138
|
-
mode: 'update',
|
|
139
|
-
title: enabling ? 'Enable Voice Interaction' : 'Disable Voice Interaction',
|
|
140
|
-
selectedFieldIndex: 0,
|
|
141
|
-
message: `${enabling ? 'Enable' : 'Disable'} local voice interaction for this Agent runtime. Type yes to confirm.`,
|
|
142
|
-
fields: [
|
|
143
|
-
{ id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: `Type yes to run /voice ${enabling ? 'enable' : 'disable'} with --yes.` },
|
|
144
|
-
],
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
if (kind === 'voice-bundle-export') {
|
|
148
|
-
return {
|
|
149
|
-
kind,
|
|
150
|
-
mode: 'create',
|
|
151
|
-
title: 'Export Voice Bundle',
|
|
152
|
-
selectedFieldIndex: 0,
|
|
153
|
-
message: 'Export a voice setup bundle. Type yes on the final field to confirm.',
|
|
154
|
-
fields: [
|
|
155
|
-
{ id: 'path', label: 'Output path', value: 'voice-bundle.json', required: true, multiline: false, hint: 'Workspace-relative JSON path to write.' },
|
|
156
|
-
{ id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to run /voice bundle export with --yes.' },
|
|
157
|
-
],
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
return {
|
|
161
|
-
kind,
|
|
36
|
+
const ACCESS_COMMAND_EDITOR_SPECS: Readonly<Record<AgentWorkspaceAccessCommandEditorKind, AgentWorkspaceEditorSpecEntry<AgentWorkspaceAccessCommandEditorKind>>> = {
|
|
37
|
+
'auth-show': {
|
|
38
|
+
mode: 'create',
|
|
39
|
+
title: 'Inspect Provider Auth',
|
|
40
|
+
selectedFieldIndex: 0,
|
|
41
|
+
message: 'Inspect one provider auth route without printing token values.',
|
|
42
|
+
fields: [
|
|
43
|
+
{ id: 'provider', label: 'Provider', value: 'openai', required: true, multiline: false, hint: 'Provider id, such as openai.' },
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
'auth-repair': {
|
|
47
|
+
mode: 'create',
|
|
48
|
+
title: 'Review Provider Auth Repair',
|
|
49
|
+
selectedFieldIndex: 0,
|
|
50
|
+
message: 'Show provider auth repair guidance without storing tokens or starting login.',
|
|
51
|
+
fields: [
|
|
52
|
+
{ id: 'provider', label: 'Provider', value: 'openai', required: true, multiline: false, hint: 'Provider id to inspect.' },
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
'auth-bundle-export': {
|
|
56
|
+
mode: 'create',
|
|
57
|
+
title: 'Export Auth Review Bundle',
|
|
58
|
+
selectedFieldIndex: 0,
|
|
59
|
+
message: 'Export a redacted auth review bundle. Type yes on the final field to confirm.',
|
|
60
|
+
fields: [
|
|
61
|
+
{ id: 'path', label: 'Output path', value: 'auth-review-bundle.json', required: true, multiline: false, hint: 'Workspace-relative JSON path to write.' },
|
|
62
|
+
{ id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to run /auth bundle export with --yes.' },
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
'auth-bundle-inspect': {
|
|
66
|
+
mode: 'create',
|
|
67
|
+
title: 'Inspect Auth Review Bundle',
|
|
68
|
+
selectedFieldIndex: 0,
|
|
69
|
+
message: 'Inspect a redacted auth review bundle before import or sharing.',
|
|
70
|
+
fields: [
|
|
71
|
+
{ id: 'path', label: 'Bundle path', value: 'auth-review-bundle.json', required: true, multiline: false, hint: 'Workspace-relative auth bundle JSON path.' },
|
|
72
|
+
],
|
|
73
|
+
},
|
|
74
|
+
'trust-bundle-export': {
|
|
75
|
+
mode: 'create',
|
|
76
|
+
title: 'Export Trust Bundle',
|
|
77
|
+
selectedFieldIndex: 0,
|
|
78
|
+
message: 'Export a redacted trust review bundle. Type yes on the final field to confirm.',
|
|
79
|
+
fields: [
|
|
80
|
+
{ id: 'path', label: 'Output path', value: 'trust-review-bundle.json', required: true, multiline: false, hint: 'Workspace-relative JSON path to write.' },
|
|
81
|
+
{ id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to run /trust bundle export with --yes.' },
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
'trust-bundle-inspect': {
|
|
85
|
+
mode: 'create',
|
|
86
|
+
title: 'Inspect Trust Bundle',
|
|
87
|
+
selectedFieldIndex: 0,
|
|
88
|
+
message: 'Inspect a trust review bundle before using it for setup review.',
|
|
89
|
+
fields: [
|
|
90
|
+
{ id: 'path', label: 'Bundle path', value: 'trust-review-bundle.json', required: true, multiline: false, hint: 'Workspace-relative trust bundle JSON path.' },
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
'subscription-bundle-export': {
|
|
94
|
+
mode: 'create',
|
|
95
|
+
title: 'Export Subscription Bundle',
|
|
96
|
+
selectedFieldIndex: 0,
|
|
97
|
+
message: 'Export a redacted provider subscription bundle. Type yes on the final field to confirm.',
|
|
98
|
+
fields: [
|
|
99
|
+
{ id: 'path', label: 'Output path', value: 'subscription-bundle.json', required: true, multiline: false, hint: 'Workspace-relative JSON path to write.' },
|
|
100
|
+
{ id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to run /subscription bundle export with --yes.' },
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
'subscription-bundle-inspect': {
|
|
104
|
+
mode: 'create',
|
|
105
|
+
title: 'Inspect Subscription Bundle',
|
|
106
|
+
selectedFieldIndex: 0,
|
|
107
|
+
message: 'Inspect a provider subscription bundle before setup review.',
|
|
108
|
+
fields: [
|
|
109
|
+
{ id: 'path', label: 'Bundle path', value: 'subscription-bundle.json', required: true, multiline: false, hint: 'Workspace-relative subscription bundle JSON path.' },
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
'voice-enable': (kind) => voiceEnableDisableSpec(kind),
|
|
113
|
+
'voice-disable': (kind) => voiceEnableDisableSpec(kind),
|
|
114
|
+
'voice-bundle-export': {
|
|
115
|
+
mode: 'create',
|
|
116
|
+
title: 'Export Voice Bundle',
|
|
117
|
+
selectedFieldIndex: 0,
|
|
118
|
+
message: 'Export a voice setup bundle. Type yes on the final field to confirm.',
|
|
119
|
+
fields: [
|
|
120
|
+
{ id: 'path', label: 'Output path', value: 'voice-bundle.json', required: true, multiline: false, hint: 'Workspace-relative JSON path to write.' },
|
|
121
|
+
{ id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: 'Type yes to run /voice bundle export with --yes.' },
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
'voice-bundle-inspect': {
|
|
162
125
|
mode: 'create',
|
|
163
126
|
title: 'Inspect Voice Bundle',
|
|
164
127
|
selectedFieldIndex: 0,
|
|
@@ -166,5 +129,22 @@ export function createAgentWorkspaceAccessCommandEditor(kind: AgentWorkspaceAcce
|
|
|
166
129
|
fields: [
|
|
167
130
|
{ id: 'path', label: 'Bundle path', value: 'voice-bundle.json', required: true, multiline: false, hint: 'Workspace-relative voice bundle JSON path.' },
|
|
168
131
|
],
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
function voiceEnableDisableSpec(kind: AgentWorkspaceAccessCommandEditorKind): AgentWorkspaceEditorSpec {
|
|
136
|
+
const enabling = kind === 'voice-enable';
|
|
137
|
+
return {
|
|
138
|
+
mode: 'update',
|
|
139
|
+
title: enabling ? 'Enable Voice Interaction' : 'Disable Voice Interaction',
|
|
140
|
+
selectedFieldIndex: 0,
|
|
141
|
+
message: `${enabling ? 'Enable' : 'Disable'} local voice interaction for this Agent runtime. Type yes to confirm.`,
|
|
142
|
+
fields: [
|
|
143
|
+
{ id: 'confirm', label: 'Confirm', value: '', required: true, multiline: false, hint: `Type yes to run /voice ${enabling ? 'enable' : 'disable'} with --yes.` },
|
|
144
|
+
],
|
|
169
145
|
};
|
|
170
146
|
}
|
|
147
|
+
|
|
148
|
+
export function createAgentWorkspaceAccessCommandEditor(kind: AgentWorkspaceAccessCommandEditorKind): AgentWorkspaceLocalEditor {
|
|
149
|
+
return createAgentWorkspaceEditorFromTable(kind, ACCESS_COMMAND_EDITOR_SPECS);
|
|
150
|
+
}
|
|
@@ -9,6 +9,11 @@ import { createAgentResearchReportEditor } from './agent-workspace-research-repo
|
|
|
9
9
|
import { createAgentResearchRunEditor } from './agent-workspace-research-run-editor.ts';
|
|
10
10
|
import { createAgentResearchSourceEditor } from './agent-workspace-research-source-editor.ts';
|
|
11
11
|
import { createReminderScheduleEditor } from './agent-workspace-reminder-schedule-editor.ts';
|
|
12
|
+
import { createEmailConnectWizardEditor } from './agent-workspace-email-connect-editor.ts';
|
|
13
|
+
import { createCalendarConnectEditor } from './agent-workspace-calendar-connect-editor.ts';
|
|
14
|
+
import { createCalendarSubscribeWizardEditor } from './agent-workspace-calendar-subscribe-editor.ts';
|
|
15
|
+
import { createCalendarOAuthEditor } from './agent-workspace-calendar-oauth-editor.ts';
|
|
16
|
+
import type { AgentWorkspaceCalendarOAuthConfigStatus } from './agent-workspace-calendar-oauth-editor.ts';
|
|
12
17
|
import { createRoutineScheduleEditor } from './agent-workspace-routine-schedule-editor.ts';
|
|
13
18
|
import { createAgentWorkspaceWebResearchEditor } from './agent-workspace-web-research-editor.ts';
|
|
14
19
|
import { parseSlashCommand } from './slash-command-parser.ts';
|
|
@@ -17,6 +22,7 @@ import type {
|
|
|
17
22
|
AgentWorkspaceCategory,
|
|
18
23
|
AgentWorkspaceCommandDispatcher,
|
|
19
24
|
AgentWorkspaceEditorKind,
|
|
25
|
+
AgentWorkspaceEmailConnectStatus,
|
|
20
26
|
AgentWorkspaceFocusPane,
|
|
21
27
|
AgentWorkspaceLocalEditor,
|
|
22
28
|
AgentWorkspaceLocalEditorKind,
|
|
@@ -97,6 +103,8 @@ export function activateAgentWorkspaceSelection(
|
|
|
97
103
|
selectedRoutine: workspace.selectedLocalLibraryItem('routine'),
|
|
98
104
|
recentReviewerHandoffArtifacts: workspace.runtimeSnapshot?.recentReviewerHandoffArtifacts ?? [],
|
|
99
105
|
reviewPacketDefaults: workspace.runtimeSnapshot?.reviewPacketDefaults ?? null,
|
|
106
|
+
emailConnectStatus: workspace.runtimeSnapshot?.emailConnectStatus ?? null,
|
|
107
|
+
calendarOAuthConfigStatus: workspace.runtimeSnapshot?.calendarOAuthConfigStatus ?? null,
|
|
100
108
|
});
|
|
101
109
|
if (!editor) {
|
|
102
110
|
workspace.status = `Editor unavailable: ${action.editorKind}.`;
|
|
@@ -196,8 +204,15 @@ export function createAgentWorkspaceEditor(
|
|
|
196
204
|
readonly selectedRoutine?: AgentWorkspaceLocalLibraryItem | null;
|
|
197
205
|
readonly recentReviewerHandoffArtifacts?: readonly AgentWorkspaceRecentReviewerHandoffArtifact[];
|
|
198
206
|
readonly reviewPacketDefaults?: AgentWorkspaceReviewPacketDefaults | null;
|
|
207
|
+
readonly emailConnectStatus?: AgentWorkspaceEmailConnectStatus | null;
|
|
208
|
+
readonly calendarOAuthConfigStatus?: AgentWorkspaceCalendarOAuthConfigStatus | null;
|
|
199
209
|
} = {},
|
|
200
210
|
): AgentWorkspaceLocalEditor | null {
|
|
211
|
+
if (editorKind === 'email-connect-wizard') return createEmailConnectWizardEditor(options.emailConnectStatus ?? null);
|
|
212
|
+
if (editorKind === 'calendar-connect') return createCalendarConnectEditor();
|
|
213
|
+
if (editorKind === 'calendar-subscribe-wizard') return createCalendarSubscribeWizardEditor();
|
|
214
|
+
if (editorKind === 'calendar-oauth-google') return createCalendarOAuthEditor('google', options.calendarOAuthConfigStatus?.google ?? false);
|
|
215
|
+
if (editorKind === 'calendar-oauth-outlook') return createCalendarOAuthEditor('microsoft', options.calendarOAuthConfigStatus?.microsoft ?? false);
|
|
201
216
|
if (editorKind === 'profile') return createProfileEditor(options.runtimeStarterTemplates ?? []);
|
|
202
217
|
if (editorKind === 'learned-behavior') return createLearnedBehaviorEditor();
|
|
203
218
|
if (editorKind === 'web-research') return createAgentWorkspaceWebResearchEditor('research');
|