@mdwrk/extension-gemini-agent 1.0.1

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.
Files changed (62) hide show
  1. package/README.md +25 -0
  2. package/dist/components/GeminiAgentView.d.ts +3 -0
  3. package/dist/components/GeminiAgentView.d.ts.map +1 -0
  4. package/dist/components/GeminiAgentView.js +71 -0
  5. package/dist/components/GeminiAgentView.js.map +1 -0
  6. package/dist/constants.d.ts +26 -0
  7. package/dist/constants.d.ts.map +1 -0
  8. package/dist/constants.js +41 -0
  9. package/dist/constants.js.map +1 -0
  10. package/dist/context.d.ts +7 -0
  11. package/dist/context.d.ts.map +1 -0
  12. package/dist/context.js +28 -0
  13. package/dist/context.js.map +1 -0
  14. package/dist/createGeminiAgentBundledEntry.d.ts +4 -0
  15. package/dist/createGeminiAgentBundledEntry.d.ts.map +1 -0
  16. package/dist/createGeminiAgentBundledEntry.js +114 -0
  17. package/dist/createGeminiAgentBundledEntry.js.map +1 -0
  18. package/dist/i18n.d.ts +70 -0
  19. package/dist/i18n.d.ts.map +1 -0
  20. package/dist/i18n.js +81 -0
  21. package/dist/i18n.js.map +1 -0
  22. package/dist/index.d.ts +13 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +13 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/locales/en.d.ts +97 -0
  27. package/dist/locales/en.d.ts.map +1 -0
  28. package/dist/locales/en.js +97 -0
  29. package/dist/locales/en.js.map +1 -0
  30. package/dist/locales/es.d.ts +54 -0
  31. package/dist/locales/es.d.ts.map +1 -0
  32. package/dist/locales/es.js +54 -0
  33. package/dist/locales/es.js.map +1 -0
  34. package/dist/manifest.d.ts +5 -0
  35. package/dist/manifest.d.ts.map +1 -0
  36. package/dist/manifest.js +254 -0
  37. package/dist/manifest.js.map +1 -0
  38. package/dist/prompt.d.ts +3 -0
  39. package/dist/prompt.d.ts.map +1 -0
  40. package/dist/prompt.js +36 -0
  41. package/dist/prompt.js.map +1 -0
  42. package/dist/provider.d.ts +21 -0
  43. package/dist/provider.d.ts.map +1 -0
  44. package/dist/provider.js +81 -0
  45. package/dist/provider.js.map +1 -0
  46. package/dist/service.d.ts +3 -0
  47. package/dist/service.d.ts.map +1 -0
  48. package/dist/service.js +176 -0
  49. package/dist/service.js.map +1 -0
  50. package/dist/settings.d.ts +4 -0
  51. package/dist/settings.d.ts.map +1 -0
  52. package/dist/settings.js +31 -0
  53. package/dist/settings.js.map +1 -0
  54. package/dist/types.d.ts +103 -0
  55. package/dist/types.d.ts.map +1 -0
  56. package/dist/types.js +2 -0
  57. package/dist/types.js.map +1 -0
  58. package/dist/version.d.ts +2 -0
  59. package/dist/version.d.ts.map +1 -0
  60. package/dist/version.js +2 -0
  61. package/dist/version.js.map +1 -0
  62. package/package.json +96 -0
package/README.md ADDED
@@ -0,0 +1,25 @@
1
+ # mdwrk/extension-gemini-agent
2
+
3
+ First-party Gemini workflow extension for Markdown Workspace.
4
+
5
+ ## Capabilities
6
+
7
+ - reads the active markdown document
8
+ - reads the current selection
9
+ - opens a bundled Gemini operator view from the action rail
10
+ - drafts rewrite results without automatically applying them
11
+ - supports opt-in writeback to the current selection or document
12
+ - publishes runtime diagnostics for configuration, execution, and writeback outcomes
13
+
14
+ ## Safe writeback model
15
+
16
+ Writeback is disabled by default.
17
+
18
+ The extension can:
19
+ - summarize the current file without modifying it
20
+ - draft a rewrite for the current selection without modifying it
21
+ - apply a draft to the current selection or replace the current document only when the `allowWriteBack` setting is enabled and the user explicitly triggers apply
22
+
23
+ ## Packaging
24
+
25
+ This package is publishable as an npm package and bundled into `apps/client` through `mdwrk/extension-runtime`.
@@ -0,0 +1,3 @@
1
+ import type { GeminiAgentViewProps } from "../types.js";
2
+ export declare const GeminiAgentView: React.FC<GeminiAgentViewProps>;
3
+ //# sourceMappingURL=GeminiAgentView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeminiAgentView.d.ts","sourceRoot":"","sources":["../../src/components/GeminiAgentView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAoCxD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAiI1D,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { geminiAgentLabels } from "../i18n.js";
4
+ const cardStyle = {
5
+ display: "grid",
6
+ gap: 10,
7
+ padding: 12,
8
+ border: "1px solid var(--border-primary)",
9
+ borderRadius: 10,
10
+ background: "var(--bg-secondary)",
11
+ };
12
+ const pillStyle = {
13
+ display: "inline-flex",
14
+ alignItems: "center",
15
+ gap: 4,
16
+ padding: "2px 8px",
17
+ borderRadius: 999,
18
+ border: "1px solid var(--border-primary)",
19
+ fontSize: 10,
20
+ textTransform: "uppercase",
21
+ letterSpacing: "0.08em",
22
+ };
23
+ const textareaStyle = {
24
+ width: "100%",
25
+ minHeight: 120,
26
+ background: "var(--bg-primary)",
27
+ color: "var(--fg-primary)",
28
+ border: "1px solid var(--border-primary)",
29
+ borderRadius: 8,
30
+ padding: "10px 12px",
31
+ fontSize: 12,
32
+ lineHeight: 1.6,
33
+ resize: "vertical",
34
+ };
35
+ export const GeminiAgentView = ({ close, formatLabel, service, input }) => {
36
+ const snapshot = React.useSyncExternalStore(service.subscribe, service.getSnapshot, service.getSnapshot);
37
+ const [prompt, setPrompt] = React.useState(input?.prompt ?? "");
38
+ const [settingsSummary, setSettingsSummary] = React.useState(null);
39
+ const lastIntentRef = React.useRef(null);
40
+ React.useEffect(() => {
41
+ void service.refreshContext();
42
+ void service.loadSettings().then((settings) => {
43
+ setSettingsSummary({
44
+ endpoint: settings.endpoint,
45
+ model: settings.model,
46
+ authMode: settings.authMode,
47
+ hasApiKey: Boolean(settings.apiKey),
48
+ allowWriteBack: settings.allowWriteBack,
49
+ autoAttachDocument: settings.autoAttachDocument,
50
+ autoAttachSelection: settings.autoAttachSelection,
51
+ });
52
+ });
53
+ }, [service]);
54
+ React.useEffect(() => {
55
+ if (!input?.intent || input.intent === "idle")
56
+ return;
57
+ const inputKey = `${input.intent}:${input.prompt ?? ""}`;
58
+ if (lastIntentRef.current === inputKey)
59
+ return;
60
+ lastIntentRef.current = inputKey;
61
+ if (input.prompt) {
62
+ setPrompt(input.prompt);
63
+ }
64
+ void service.runIntent(input.intent, input.prompt ?? "");
65
+ }, [input, service]);
66
+ const context = snapshot.lastContext;
67
+ const selectionLength = context?.selections?.[0]?.text?.length ?? 0;
68
+ const configured = Boolean(settingsSummary?.endpoint) && (settingsSummary?.authMode === "none" || Boolean(settingsSummary?.hasApiKey));
69
+ return (_jsx("div", { className: "modal-overlay", children: _jsxs("div", { className: "modal-base settings-modal", style: { width: "min(1080px, calc(100vw - 48px))" }, children: [_jsxs("div", { className: "modal-header", children: [_jsxs("div", { style: { display: "grid", gap: 4 }, children: [_jsx("span", { className: "modal-title", children: formatLabel(geminiAgentLabels.panelTitle) }), _jsx("span", { style: { fontSize: 12, color: "var(--fg-muted)" }, children: formatLabel(geminiAgentLabels.panelSubtitle) })] }), _jsx("button", { onClick: () => void close(), className: "modal-close", children: formatLabel(geminiAgentLabels.panelClose) })] }), _jsxs("div", { className: "settings-content-frame", style: { display: "grid", gridTemplateColumns: "minmax(0, 1.15fr) minmax(320px, 0.85fr)", gap: 16 }, children: [_jsxs("div", { className: "settings-pane", style: { display: "grid", gap: 14 }, children: [_jsxs("div", { className: "settings-card settings-card-stack", style: { display: "grid", gap: 10 }, children: [_jsxs("div", { style: { display: "flex", gap: 8, flexWrap: "wrap" }, children: [_jsx("span", { style: pillStyle, children: configured ? formatLabel(geminiAgentLabels.statusConfigured) : formatLabel(geminiAgentLabels.statusMissingConfiguration) }), _jsx("span", { style: pillStyle, children: settingsSummary?.allowWriteBack ? formatLabel(geminiAgentLabels.statusWritebackEnabled) : formatLabel(geminiAgentLabels.statusWritebackDisabled) }), _jsx("span", { style: pillStyle, children: snapshot.busy ? formatLabel(geminiAgentLabels.statusRunning) : formatLabel(geminiAgentLabels.statusIdle) })] }), _jsxs("label", { style: { display: "grid", gap: 8 }, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.08em" }, children: formatLabel(geminiAgentLabels.panelPrompt) }), _jsx("textarea", { value: prompt, placeholder: formatLabel(geminiAgentLabels.statusPromptPlaceholder), style: textareaStyle, onChange: (event) => setPrompt(event.currentTarget.value) })] }), _jsxs("div", { style: { display: "flex", gap: 8, flexWrap: "wrap" }, children: [_jsx("button", { className: "modal-btn modal-btn-primary", disabled: snapshot.busy, onClick: () => void service.runIntent("custom-prompt", prompt), children: formatLabel(geminiAgentLabels.panelRunPrompt) }), _jsx("button", { className: "modal-btn", disabled: snapshot.busy, onClick: () => void service.runIntent("summarize-current-file"), children: formatLabel(geminiAgentLabels.panelSummarize) }), _jsx("button", { className: "modal-btn", disabled: snapshot.busy, onClick: () => void service.runIntent("rewrite-selection", prompt), children: formatLabel(geminiAgentLabels.panelRewriteSelection) }), _jsx("button", { className: "modal-btn", disabled: snapshot.busy, onClick: () => void service.refreshContext(), children: formatLabel(geminiAgentLabels.panelRefresh) }), _jsx("button", { className: "modal-btn", onClick: () => service.clearResult(), children: formatLabel(geminiAgentLabels.panelClearResult) })] })] }), _jsxs("div", { style: cardStyle, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.08em" }, children: formatLabel(geminiAgentLabels.panelResponse) }), _jsx("pre", { style: { margin: 0, whiteSpace: "pre-wrap", fontFamily: "var(--font-mono, monospace)", fontSize: 12, lineHeight: 1.6 }, children: snapshot.lastResponse?.text ?? "" })] }), _jsxs("div", { style: cardStyle, children: [_jsxs("div", { style: { display: "flex", justifyContent: "space-between", gap: 10, alignItems: "center" }, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.08em" }, children: formatLabel(geminiAgentLabels.panelDraft) }), _jsxs("div", { style: { display: "flex", gap: 8, flexWrap: "wrap" }, children: [_jsx("button", { className: "modal-btn", disabled: snapshot.busy, onClick: () => void service.applyDraft("selection"), children: formatLabel(geminiAgentLabels.panelApplySelection) }), _jsx("button", { className: "modal-btn", disabled: snapshot.busy, onClick: () => void service.applyDraft("document"), children: formatLabel(geminiAgentLabels.panelReplaceDocument) }), _jsx("button", { className: "modal-btn", onClick: () => service.clearDraft(), children: formatLabel(geminiAgentLabels.panelClearDraft) })] })] }), _jsx("textarea", { value: snapshot.pendingDraft ?? "", style: { ...textareaStyle, minHeight: 180 }, onChange: (event) => service.updateDraft(event.currentTarget.value) }), snapshot.writebackBlockedReason && _jsx("p", { style: { margin: 0, fontSize: 12, color: "var(--fg-secondary)" }, children: snapshot.writebackBlockedReason })] })] }), _jsxs("div", { className: "settings-pane", style: { display: "grid", gap: 14 }, children: [_jsxs("div", { style: cardStyle, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.08em" }, children: formatLabel(geminiAgentLabels.panelContext) }), _jsxs("div", { className: "settings-session-grid", children: [_jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: formatLabel(geminiAgentLabels.panelContextProject) }), _jsx("span", { className: "settings-session-value", children: context?.project?.name ?? formatLabel(geminiAgentLabels.panelContextNone) })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: formatLabel(geminiAgentLabels.panelContextFile) }), _jsx("span", { className: "settings-session-value", children: context?.file?.path ?? context?.file?.name ?? formatLabel(geminiAgentLabels.panelContextNone) })] }), _jsxs("div", { className: "settings-session-item", children: [_jsx("span", { className: "settings-session-label", children: formatLabel(geminiAgentLabels.panelContextSelection) }), _jsx("span", { className: "settings-session-value", children: selectionLength > 0 ? `${selectionLength} ${formatLabel(geminiAgentLabels.panelSelectionCountSuffix)}` : formatLabel(geminiAgentLabels.panelContextNone) })] })] })] }), _jsxs("div", { style: cardStyle, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.08em" }, children: formatLabel(geminiAgentLabels.panelSettings) }), _jsx("pre", { style: { margin: 0, whiteSpace: "pre-wrap", fontFamily: "var(--font-mono, monospace)", fontSize: 12, lineHeight: 1.5 }, children: JSON.stringify(settingsSummary ?? {}, null, 2) })] }), snapshot.infoMessage && (_jsxs("div", { style: cardStyle, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.08em" }, children: formatLabel(geminiAgentLabels.panelLastInfo) }), _jsx("p", { style: { margin: 0, fontSize: 12, color: "var(--fg-secondary)" }, children: snapshot.infoMessage })] })), snapshot.lastError && (_jsxs("div", { style: cardStyle, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 700, textTransform: "uppercase", letterSpacing: "0.08em" }, children: formatLabel(geminiAgentLabels.panelLastError) }), _jsx("p", { style: { margin: 0, fontSize: 12, color: "var(--fg-secondary)" }, children: snapshot.lastError })] }))] })] })] }) }));
70
+ };
71
+ //# sourceMappingURL=GeminiAgentView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeminiAgentView.js","sourceRoot":"","sources":["../../src/components/GeminiAgentView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { GeminiAgentIntent, GeminiAgentResolvedSettings } from "./types.js";
2
+ export declare const GEMINI_AGENT_EXTENSION_ID = "core.gemini-agent";
3
+ export declare const GEMINI_AGENT_VIEW_ID = "core.gemini-agent.view";
4
+ export declare const GEMINI_AGENT_RAIL_ID = "core.gemini-agent.rail";
5
+ export declare const GEMINI_AGENT_SERVICE_TOKEN = "core.gemini-agent.service";
6
+ export declare const GEMINI_AGENT_COMMAND_OPEN_ID = "core.gemini-agent.open";
7
+ export declare const GEMINI_AGENT_COMMAND_SUMMARIZE_FILE_ID = "core.gemini-agent.summarize-current-file";
8
+ export declare const GEMINI_AGENT_COMMAND_REWRITE_SELECTION_ID = "core.gemini-agent.rewrite-selection";
9
+ export declare const GEMINI_AGENT_COMMAND_APPLY_DRAFT_TO_SELECTION_ID = "core.gemini-agent.apply-draft-to-selection";
10
+ export declare const GEMINI_AGENT_COMMAND_REPLACE_DOCUMENT_WITH_DRAFT_ID = "core.gemini-agent.replace-document-with-draft";
11
+ export declare const GEMINI_AGENT_SETTINGS_SECTION_GENERAL = "core.gemini-agent.settings.general";
12
+ export declare const GEMINI_AGENT_SETTINGS_SECTION_CONTEXT = "core.gemini-agent.settings.context";
13
+ export declare const GEMINI_AGENT_SETTINGS_SECTION_WRITEBACK = "core.gemini-agent.settings.writeback";
14
+ export declare const GEMINI_AGENT_SETTING_ENDPOINT: "endpoint";
15
+ export declare const GEMINI_AGENT_SETTING_MODEL: "model";
16
+ export declare const GEMINI_AGENT_SETTING_AUTH_MODE: "authMode";
17
+ export declare const GEMINI_AGENT_SETTING_API_KEY: "apiKey";
18
+ export declare const GEMINI_AGENT_SETTING_SYSTEM_PROMPT: "systemPrompt";
19
+ export declare const GEMINI_AGENT_SETTING_TEMPERATURE: "temperature";
20
+ export declare const GEMINI_AGENT_SETTING_TIMEOUT_MS: "requestTimeoutMs";
21
+ export declare const GEMINI_AGENT_SETTING_AUTO_ATTACH_DOCUMENT: "autoAttachDocument";
22
+ export declare const GEMINI_AGENT_SETTING_AUTO_ATTACH_SELECTION: "autoAttachSelection";
23
+ export declare const GEMINI_AGENT_SETTING_ALLOW_WRITEBACK: "allowWriteBack";
24
+ export declare const GEMINI_AGENT_DEFAULT_SETTINGS: GeminiAgentResolvedSettings;
25
+ export declare const GEMINI_AGENT_INTENTS: readonly GeminiAgentIntent[];
26
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEjF,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAC7D,eAAO,MAAM,oBAAoB,2BAAsC,CAAC;AACxE,eAAO,MAAM,oBAAoB,2BAAsC,CAAC;AACxE,eAAO,MAAM,0BAA0B,8BAAyC,CAAC;AAEjF,eAAO,MAAM,4BAA4B,2BAAsC,CAAC;AAChF,eAAO,MAAM,sCAAsC,6CAAwD,CAAC;AAC5G,eAAO,MAAM,yCAAyC,wCAAmD,CAAC;AAC1G,eAAO,MAAM,gDAAgD,+CAA0D,CAAC;AACxH,eAAO,MAAM,mDAAmD,kDAA6D,CAAC;AAE9H,eAAO,MAAM,qCAAqC,uCAAkD,CAAC;AACrG,eAAO,MAAM,qCAAqC,uCAAkD,CAAC;AACrG,eAAO,MAAM,uCAAuC,yCAAoD,CAAC;AAEzG,eAAO,MAAM,6BAA6B,EAAG,UAAmB,CAAC;AACjE,eAAO,MAAM,0BAA0B,EAAG,OAAgB,CAAC;AAC3D,eAAO,MAAM,8BAA8B,EAAG,UAAmB,CAAC;AAClE,eAAO,MAAM,4BAA4B,EAAG,QAAiB,CAAC;AAC9D,eAAO,MAAM,kCAAkC,EAAG,cAAuB,CAAC;AAC1E,eAAO,MAAM,gCAAgC,EAAG,aAAsB,CAAC;AACvE,eAAO,MAAM,+BAA+B,EAAG,kBAA2B,CAAC;AAC3E,eAAO,MAAM,yCAAyC,EAAG,oBAA6B,CAAC;AACvF,eAAO,MAAM,0CAA0C,EAAG,qBAA8B,CAAC;AACzF,eAAO,MAAM,oCAAoC,EAAG,gBAAyB,CAAC;AAE9E,eAAO,MAAM,6BAA6B,EAAE,2BAW3C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAKnD,CAAC"}
@@ -0,0 +1,41 @@
1
+ export const GEMINI_AGENT_EXTENSION_ID = "core.gemini-agent";
2
+ export const GEMINI_AGENT_VIEW_ID = `${GEMINI_AGENT_EXTENSION_ID}.view`;
3
+ export const GEMINI_AGENT_RAIL_ID = `${GEMINI_AGENT_EXTENSION_ID}.rail`;
4
+ export const GEMINI_AGENT_SERVICE_TOKEN = `${GEMINI_AGENT_EXTENSION_ID}.service`;
5
+ export const GEMINI_AGENT_COMMAND_OPEN_ID = `${GEMINI_AGENT_EXTENSION_ID}.open`;
6
+ export const GEMINI_AGENT_COMMAND_SUMMARIZE_FILE_ID = `${GEMINI_AGENT_EXTENSION_ID}.summarize-current-file`;
7
+ export const GEMINI_AGENT_COMMAND_REWRITE_SELECTION_ID = `${GEMINI_AGENT_EXTENSION_ID}.rewrite-selection`;
8
+ export const GEMINI_AGENT_COMMAND_APPLY_DRAFT_TO_SELECTION_ID = `${GEMINI_AGENT_EXTENSION_ID}.apply-draft-to-selection`;
9
+ export const GEMINI_AGENT_COMMAND_REPLACE_DOCUMENT_WITH_DRAFT_ID = `${GEMINI_AGENT_EXTENSION_ID}.replace-document-with-draft`;
10
+ export const GEMINI_AGENT_SETTINGS_SECTION_GENERAL = `${GEMINI_AGENT_EXTENSION_ID}.settings.general`;
11
+ export const GEMINI_AGENT_SETTINGS_SECTION_CONTEXT = `${GEMINI_AGENT_EXTENSION_ID}.settings.context`;
12
+ export const GEMINI_AGENT_SETTINGS_SECTION_WRITEBACK = `${GEMINI_AGENT_EXTENSION_ID}.settings.writeback`;
13
+ export const GEMINI_AGENT_SETTING_ENDPOINT = "endpoint";
14
+ export const GEMINI_AGENT_SETTING_MODEL = "model";
15
+ export const GEMINI_AGENT_SETTING_AUTH_MODE = "authMode";
16
+ export const GEMINI_AGENT_SETTING_API_KEY = "apiKey";
17
+ export const GEMINI_AGENT_SETTING_SYSTEM_PROMPT = "systemPrompt";
18
+ export const GEMINI_AGENT_SETTING_TEMPERATURE = "temperature";
19
+ export const GEMINI_AGENT_SETTING_TIMEOUT_MS = "requestTimeoutMs";
20
+ export const GEMINI_AGENT_SETTING_AUTO_ATTACH_DOCUMENT = "autoAttachDocument";
21
+ export const GEMINI_AGENT_SETTING_AUTO_ATTACH_SELECTION = "autoAttachSelection";
22
+ export const GEMINI_AGENT_SETTING_ALLOW_WRITEBACK = "allowWriteBack";
23
+ export const GEMINI_AGENT_DEFAULT_SETTINGS = {
24
+ endpoint: "https://generativelanguage.googleapis.com/v1beta",
25
+ model: "gemini-2.5-flash",
26
+ authMode: "api-key",
27
+ apiKey: "",
28
+ systemPrompt: "You are an expert markdown copilot. Preserve markdown structure unless the user explicitly asks for a format change.",
29
+ temperature: 0.2,
30
+ requestTimeoutMs: 30000,
31
+ autoAttachDocument: true,
32
+ autoAttachSelection: true,
33
+ allowWriteBack: false,
34
+ };
35
+ export const GEMINI_AGENT_INTENTS = [
36
+ "idle",
37
+ "summarize-current-file",
38
+ "rewrite-selection",
39
+ "custom-prompt",
40
+ ];
41
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,yBAAyB,OAAO,CAAC;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,yBAAyB,OAAO,CAAC;AACxE,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,yBAAyB,UAAU,CAAC;AAEjF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,yBAAyB,OAAO,CAAC;AAChF,MAAM,CAAC,MAAM,sCAAsC,GAAG,GAAG,yBAAyB,yBAAyB,CAAC;AAC5G,MAAM,CAAC,MAAM,yCAAyC,GAAG,GAAG,yBAAyB,oBAAoB,CAAC;AAC1G,MAAM,CAAC,MAAM,gDAAgD,GAAG,GAAG,yBAAyB,2BAA2B,CAAC;AACxH,MAAM,CAAC,MAAM,mDAAmD,GAAG,GAAG,yBAAyB,8BAA8B,CAAC;AAE9H,MAAM,CAAC,MAAM,qCAAqC,GAAG,GAAG,yBAAyB,mBAAmB,CAAC;AACrG,MAAM,CAAC,MAAM,qCAAqC,GAAG,GAAG,yBAAyB,mBAAmB,CAAC;AACrG,MAAM,CAAC,MAAM,uCAAuC,GAAG,GAAG,yBAAyB,qBAAqB,CAAC;AAEzG,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAmB,CAAC;AACjE,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAgB,CAAC;AAC3D,MAAM,CAAC,MAAM,8BAA8B,GAAG,UAAmB,CAAC;AAClE,MAAM,CAAC,MAAM,4BAA4B,GAAG,QAAiB,CAAC;AAC9D,MAAM,CAAC,MAAM,kCAAkC,GAAG,cAAuB,CAAC;AAC1E,MAAM,CAAC,MAAM,gCAAgC,GAAG,aAAsB,CAAC;AACvE,MAAM,CAAC,MAAM,+BAA+B,GAAG,kBAA2B,CAAC;AAC3E,MAAM,CAAC,MAAM,yCAAyC,GAAG,oBAA6B,CAAC;AACvF,MAAM,CAAC,MAAM,0CAA0C,GAAG,qBAA8B,CAAC;AACzF,MAAM,CAAC,MAAM,oCAAoC,GAAG,gBAAyB,CAAC;AAE9E,MAAM,CAAC,MAAM,6BAA6B,GAAgC;IACxE,QAAQ,EAAE,kDAAkD;IAC5D,KAAK,EAAE,kBAAkB;IACzB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,sHAAsH;IACpI,WAAW,EAAE,GAAG;IAChB,gBAAgB,EAAE,KAAK;IACvB,kBAAkB,EAAE,IAAI;IACxB,mBAAmB,EAAE,IAAI;IACzB,cAAc,EAAE,KAAK;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAiC;IAChE,MAAM;IACN,wBAAwB;IACxB,mBAAmB;IACnB,eAAe;CACP,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ExtensionHost } from "@mdwrk/extension-host";
2
+ import type { GeminiAgentContextSnapshot } from "./types.js";
3
+ export declare function collectGeminiAgentContext(host: ExtensionHost): Promise<GeminiAgentContextSnapshot>;
4
+ export declare function hasActiveDocumentContext(context: GeminiAgentContextSnapshot): boolean;
5
+ export declare function hasSelectedTextContext(context: GeminiAgentContextSnapshot): boolean;
6
+ export declare function getPrimarySelectionText(context: GeminiAgentContextSnapshot): string;
7
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAM7D,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAcxG;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAErF;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAEnF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAGnF"}
@@ -0,0 +1,28 @@
1
+ function hasSelectionText(selection) {
2
+ return selection.end > selection.start && typeof selection.text === "string" && selection.text.length > 0;
3
+ }
4
+ export async function collectGeminiAgentContext(host) {
5
+ const [project, file, document, selections] = await Promise.all([
6
+ host.workspace.getActiveProject(),
7
+ host.workspace.getActiveFile(),
8
+ host.editor.getActiveDocument(),
9
+ host.editor.getSelections(),
10
+ ]);
11
+ return {
12
+ project,
13
+ file,
14
+ document,
15
+ selections: selections.filter((selection) => selection.end >= selection.start),
16
+ };
17
+ }
18
+ export function hasActiveDocumentContext(context) {
19
+ return Boolean(context.document?.content && context.document.content.length > 0);
20
+ }
21
+ export function hasSelectedTextContext(context) {
22
+ return context.selections.some(hasSelectionText);
23
+ }
24
+ export function getPrimarySelectionText(context) {
25
+ const selection = context.selections.find(hasSelectionText);
26
+ return selection?.text ?? "";
27
+ }
28
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAGA,SAAS,gBAAgB,CAAC,SAAyB;IACjD,OAAO,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,KAAK,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAAmB;IACjE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;QACjC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;QAC9B,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;QAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;KAC5B,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC;KAC/E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAmC;IAC1E,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAmC;IACxE,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAmC;IACzE,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5D,OAAO,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { BundledExtensionCatalogEntry } from "@mdwrk/extension-runtime";
2
+ import type { GeminiAgentEntryOptions } from "./types.js";
3
+ export declare function createGeminiAgentBundledEntry(options?: GeminiAgentEntryOptions): BundledExtensionCatalogEntry;
4
+ //# sourceMappingURL=createGeminiAgentBundledEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createGeminiAgentBundledEntry.d.ts","sourceRoot":"","sources":["../src/createGeminiAgentBundledEntry.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAe7E,OAAO,KAAK,EAAE,uBAAuB,EAAwB,MAAM,YAAY,CAAC;AAGhF,wBAAgB,6BAA6B,CAAC,OAAO,GAAE,uBAA4B,GAAG,4BAA4B,CA4HjH"}
@@ -0,0 +1,114 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { GEMINI_AGENT_COMMAND_APPLY_DRAFT_TO_SELECTION_ID, GEMINI_AGENT_COMMAND_OPEN_ID, GEMINI_AGENT_COMMAND_REPLACE_DOCUMENT_WITH_DRAFT_ID, GEMINI_AGENT_COMMAND_REWRITE_SELECTION_ID, GEMINI_AGENT_COMMAND_SUMMARIZE_FILE_ID, GEMINI_AGENT_RAIL_ID, GEMINI_AGENT_SERVICE_TOKEN, GEMINI_AGENT_VIEW_ID, } from "./constants.js";
3
+ import { geminiAgentLabels, geminiAgentLocaleLoader } from "./i18n.js";
4
+ import { geminiAgentManifest } from "./manifest.js";
5
+ import { createGeminiTextProvider } from "./provider.js";
6
+ import { createGeminiAgentService } from "./service.js";
7
+ import { GeminiAgentView } from "./components/GeminiAgentView.js";
8
+ export function createGeminiAgentBundledEntry(options = {}) {
9
+ return {
10
+ manifest: geminiAgentManifest,
11
+ activation: "lazy",
12
+ async load() {
13
+ const extension = {
14
+ manifest: geminiAgentManifest,
15
+ async activate(context) {
16
+ context.registerLocaleCatalogLoader(geminiAgentLocaleLoader);
17
+ await context.host.i18n.ensureLocale();
18
+ const provider = options.provider ?? createGeminiTextProvider();
19
+ const service = createGeminiAgentService({
20
+ context,
21
+ provider,
22
+ formatLabel: context.host.i18n.format,
23
+ });
24
+ context.registerService(GEMINI_AGENT_SERVICE_TOKEN, service);
25
+ context.registerCommand({
26
+ id: GEMINI_AGENT_COMMAND_OPEN_ID,
27
+ title: geminiAgentLabels.commandOpenTitle,
28
+ description: geminiAgentLabels.commandOpenDescription,
29
+ icon: { kind: "lucide", name: "Bot" },
30
+ keywords: ["gemini", "agent", "assistant"],
31
+ execute: async () => {
32
+ await context.host.views.open(GEMINI_AGENT_VIEW_ID);
33
+ },
34
+ });
35
+ context.registerCommand({
36
+ id: GEMINI_AGENT_COMMAND_SUMMARIZE_FILE_ID,
37
+ title: geminiAgentLabels.commandSummarizeTitle,
38
+ description: geminiAgentLabels.commandSummarizeDescription,
39
+ icon: { kind: "lucide", name: "FileText" },
40
+ keywords: ["gemini", "summary", "document", "markdown"],
41
+ execute: async () => {
42
+ await context.host.views.open(GEMINI_AGENT_VIEW_ID, { intent: "summarize-current-file" });
43
+ },
44
+ });
45
+ context.registerCommand({
46
+ id: GEMINI_AGENT_COMMAND_REWRITE_SELECTION_ID,
47
+ title: geminiAgentLabels.commandRewriteTitle,
48
+ description: geminiAgentLabels.commandRewriteDescription,
49
+ icon: { kind: "lucide", name: "Pencil" },
50
+ keywords: ["gemini", "rewrite", "selection", "draft"],
51
+ execute: async () => {
52
+ await context.host.views.open(GEMINI_AGENT_VIEW_ID, { intent: "rewrite-selection" });
53
+ },
54
+ });
55
+ context.registerCommand({
56
+ id: GEMINI_AGENT_COMMAND_APPLY_DRAFT_TO_SELECTION_ID,
57
+ title: geminiAgentLabels.commandApplySelectionTitle,
58
+ description: geminiAgentLabels.commandApplySelectionDescription,
59
+ icon: { kind: "lucide", name: "Save" },
60
+ keywords: ["gemini", "apply", "selection", "draft"],
61
+ execute: async () => {
62
+ await service.applyDraft("selection");
63
+ },
64
+ });
65
+ context.registerCommand({
66
+ id: GEMINI_AGENT_COMMAND_REPLACE_DOCUMENT_WITH_DRAFT_ID,
67
+ title: geminiAgentLabels.commandReplaceDocumentTitle,
68
+ description: geminiAgentLabels.commandReplaceDocumentDescription,
69
+ icon: { kind: "lucide", name: "Save" },
70
+ keywords: ["gemini", "replace", "document", "draft"],
71
+ execute: async () => {
72
+ await service.applyDraft("document");
73
+ },
74
+ });
75
+ context.registerView({
76
+ id: GEMINI_AGENT_VIEW_ID,
77
+ title: geminiAgentLabels.viewTitle,
78
+ description: geminiAgentLabels.viewDescription,
79
+ icon: { kind: "lucide", name: "Bot" },
80
+ location: "modal",
81
+ allowMultiple: false,
82
+ canBePinned: false,
83
+ render: (props) => (_jsx(GeminiAgentView, { close: () => props.close(), formatLabel: context.host.i18n.format, service: service, input: (props.input ?? null) })),
84
+ });
85
+ context.registerActionRailItem({
86
+ id: GEMINI_AGENT_RAIL_ID,
87
+ title: geminiAgentLabels.railTitle,
88
+ icon: { kind: "lucide", name: "Bot" },
89
+ group: "assistant",
90
+ order: 10,
91
+ target: {
92
+ kind: "view",
93
+ viewId: GEMINI_AGENT_VIEW_ID,
94
+ },
95
+ });
96
+ context.registerSettingsSection({
97
+ id: `${context.extensionId}.settings`,
98
+ title: geminiAgentLabels.settingsTitle,
99
+ description: geminiAgentLabels.settingsDescription,
100
+ order: 10,
101
+ schemaPath: "manifest.settingsSchema",
102
+ });
103
+ await context.host.diagnostics.publish(context.extensionId, {
104
+ severity: "info",
105
+ code: "EXT_GEMINI_READY",
106
+ message: context.host.i18n.format(geminiAgentLabels.diagnosticsReady),
107
+ });
108
+ },
109
+ };
110
+ return extension;
111
+ },
112
+ };
113
+ }
114
+ //# sourceMappingURL=createGeminiAgentBundledEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createGeminiAgentBundledEntry.js","sourceRoot":"","sources":["../src/createGeminiAgentBundledEntry.tsx"],"names":[],"mappings":"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"}
package/dist/i18n.d.ts ADDED
@@ -0,0 +1,70 @@
1
+ import type { I18nLabel } from "@mdwrk/extension-manifest";
2
+ import type { ExtensionLocaleCatalogLoader } from "@mdwrk/extension-host";
3
+ export declare const geminiLabel: (suffix: string, defaultMessage: string, description?: string) => I18nLabel;
4
+ export declare const geminiAgentLabels: {
5
+ readonly manifestDisplayName: I18nLabel;
6
+ readonly manifestDescription: I18nLabel;
7
+ readonly commandOpenTitle: I18nLabel;
8
+ readonly commandOpenDescription: I18nLabel;
9
+ readonly commandSummarizeTitle: I18nLabel;
10
+ readonly commandSummarizeDescription: I18nLabel;
11
+ readonly commandRewriteTitle: I18nLabel;
12
+ readonly commandRewriteDescription: I18nLabel;
13
+ readonly commandApplySelectionTitle: I18nLabel;
14
+ readonly commandApplySelectionDescription: I18nLabel;
15
+ readonly commandReplaceDocumentTitle: I18nLabel;
16
+ readonly commandReplaceDocumentDescription: I18nLabel;
17
+ readonly viewTitle: I18nLabel;
18
+ readonly viewDescription: I18nLabel;
19
+ readonly railTitle: I18nLabel;
20
+ readonly settingsTitle: I18nLabel;
21
+ readonly settingsDescription: I18nLabel;
22
+ readonly statusConfigured: I18nLabel;
23
+ readonly statusMissingConfiguration: I18nLabel;
24
+ readonly statusWritebackDisabled: I18nLabel;
25
+ readonly statusWritebackEnabled: I18nLabel;
26
+ readonly statusIdle: I18nLabel;
27
+ readonly statusRunning: I18nLabel;
28
+ readonly statusNoDocument: I18nLabel;
29
+ readonly statusNoSelection: I18nLabel;
30
+ readonly statusNoDraft: I18nLabel;
31
+ readonly statusPromptPlaceholder: I18nLabel;
32
+ readonly panelTitle: I18nLabel;
33
+ readonly panelSubtitle: I18nLabel;
34
+ readonly panelClose: I18nLabel;
35
+ readonly panelRefresh: I18nLabel;
36
+ readonly panelRunPrompt: I18nLabel;
37
+ readonly panelSummarize: I18nLabel;
38
+ readonly panelRewriteSelection: I18nLabel;
39
+ readonly panelApplySelection: I18nLabel;
40
+ readonly panelReplaceDocument: I18nLabel;
41
+ readonly panelClearDraft: I18nLabel;
42
+ readonly panelClearResult: I18nLabel;
43
+ readonly panelContext: I18nLabel;
44
+ readonly panelContextProject: I18nLabel;
45
+ readonly panelContextFile: I18nLabel;
46
+ readonly panelContextSelection: I18nLabel;
47
+ readonly panelContextNone: I18nLabel;
48
+ readonly panelResponse: I18nLabel;
49
+ readonly panelDraft: I18nLabel;
50
+ readonly panelSettings: I18nLabel;
51
+ readonly panelPrompt: I18nLabel;
52
+ readonly panelLastError: I18nLabel;
53
+ readonly panelLastInfo: I18nLabel;
54
+ readonly panelSelectionCountSuffix: I18nLabel;
55
+ readonly diagnosticsReady: I18nLabel;
56
+ readonly diagnosticsMissingConfiguration: I18nLabel;
57
+ readonly diagnosticsNoDocument: I18nLabel;
58
+ readonly diagnosticsNoSelection: I18nLabel;
59
+ readonly diagnosticsRequestSucceeded: I18nLabel;
60
+ readonly diagnosticsWritebackBlocked: I18nLabel;
61
+ readonly diagnosticsWritebackApplied: I18nLabel;
62
+ readonly notificationsWritebackBlocked: I18nLabel;
63
+ readonly notificationsWritebackAppliedSelection: I18nLabel;
64
+ readonly notificationsWritebackAppliedDocument: I18nLabel;
65
+ readonly notificationsMissingConfiguration: I18nLabel;
66
+ readonly notificationsNoSelection: I18nLabel;
67
+ readonly notificationsNoDocument: I18nLabel;
68
+ };
69
+ export declare const geminiAgentLocaleLoader: ExtensionLocaleCatalogLoader;
70
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAI1E,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,gBAAgB,MAAM,EAAE,cAAc,MAAM,KAAG,SAIzF,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEpB,CAAC;AAEX,eAAO,MAAM,uBAAuB,EAAE,4BAOrC,CAAC"}
package/dist/i18n.js ADDED
@@ -0,0 +1,81 @@
1
+ import { GEMINI_AGENT_EXTENSION_ID } from "./constants.js";
2
+ const key = (suffix) => `${GEMINI_AGENT_EXTENSION_ID}.${suffix}`;
3
+ export const geminiLabel = (suffix, defaultMessage, description) => ({
4
+ key: key(suffix),
5
+ defaultMessage,
6
+ description,
7
+ });
8
+ export const geminiAgentLabels = {
9
+ manifestDisplayName: geminiLabel("manifest.displayName", "Gemini Agent"),
10
+ manifestDescription: geminiLabel("manifest.description", "Bundled Gemini assistant for summarizing files, drafting selection rewrites, and staging safe writeback operations."),
11
+ commandOpenTitle: geminiLabel("commands.open.title", "Open Gemini Agent"),
12
+ commandOpenDescription: geminiLabel("commands.open.description", "Open the Gemini Agent operator view."),
13
+ commandSummarizeTitle: geminiLabel("commands.summarize.title", "Summarize Current File"),
14
+ commandSummarizeDescription: geminiLabel("commands.summarize.description", "Summarize the active markdown document in the Gemini Agent view."),
15
+ commandRewriteTitle: geminiLabel("commands.rewrite.title", "Draft Rewrite of Selection"),
16
+ commandRewriteDescription: geminiLabel("commands.rewrite.description", "Generate a draft rewrite for the current selection in the Gemini Agent view."),
17
+ commandApplySelectionTitle: geminiLabel("commands.applySelection.title", "Apply Gemini Draft to Selection"),
18
+ commandApplySelectionDescription: geminiLabel("commands.applySelection.description", "Apply the current Gemini draft to the active selection when writeback is enabled."),
19
+ commandReplaceDocumentTitle: geminiLabel("commands.replaceDocument.title", "Replace Document With Gemini Draft"),
20
+ commandReplaceDocumentDescription: geminiLabel("commands.replaceDocument.description", "Replace the current document with the latest Gemini draft when writeback is enabled."),
21
+ viewTitle: geminiLabel("view.title", "Gemini Agent"),
22
+ viewDescription: geminiLabel("view.description", "Run Gemini workflows against the active markdown document and manage safe draft writeback."),
23
+ railTitle: geminiLabel("rail.title", "Gemini"),
24
+ settingsTitle: geminiLabel("settings.title", "Gemini Agent settings"),
25
+ settingsDescription: geminiLabel("settings.description", "Configure provider connectivity, automatic context attachment, and safe writeback behavior for the Gemini extension."),
26
+ statusConfigured: geminiLabel("status.configured", "Configured"),
27
+ statusMissingConfiguration: geminiLabel("status.missingConfiguration", "Missing configuration"),
28
+ statusWritebackDisabled: geminiLabel("status.writebackDisabled", "Writeback disabled"),
29
+ statusWritebackEnabled: geminiLabel("status.writebackEnabled", "Writeback enabled"),
30
+ statusIdle: geminiLabel("status.idle", "Ready"),
31
+ statusRunning: geminiLabel("status.running", "Running Gemini request…"),
32
+ statusNoDocument: geminiLabel("status.noDocument", "No active markdown document"),
33
+ statusNoSelection: geminiLabel("status.noSelection", "No active selection"),
34
+ statusNoDraft: geminiLabel("status.noDraft", "No Gemini draft available"),
35
+ statusPromptPlaceholder: geminiLabel("status.promptPlaceholder", "Ask Gemini to summarize, critique, transform, or extract structure from the active markdown…"),
36
+ panelTitle: geminiLabel("panel.title", "Gemini Agent"),
37
+ panelSubtitle: geminiLabel("panel.subtitle", "Document-aware workflows, selection-aware drafting, and safe explicit writeback."),
38
+ panelClose: geminiLabel("panel.close", "Close"),
39
+ panelRefresh: geminiLabel("panel.refresh", "Refresh context"),
40
+ panelRunPrompt: geminiLabel("panel.runPrompt", "Run prompt"),
41
+ panelSummarize: geminiLabel("panel.summarize", "Summarize file"),
42
+ panelRewriteSelection: geminiLabel("panel.rewriteSelection", "Draft rewrite of selection"),
43
+ panelApplySelection: geminiLabel("panel.applySelection", "Apply draft to selection"),
44
+ panelReplaceDocument: geminiLabel("panel.replaceDocument", "Replace document with draft"),
45
+ panelClearDraft: geminiLabel("panel.clearDraft", "Clear draft"),
46
+ panelClearResult: geminiLabel("panel.clearResult", "Clear response"),
47
+ panelContext: geminiLabel("panel.context", "Context"),
48
+ panelContextProject: geminiLabel("panel.context.project", "Project"),
49
+ panelContextFile: geminiLabel("panel.context.file", "File"),
50
+ panelContextSelection: geminiLabel("panel.context.selection", "Selection"),
51
+ panelContextNone: geminiLabel("panel.context.none", "None"),
52
+ panelResponse: geminiLabel("panel.response", "Response"),
53
+ panelDraft: geminiLabel("panel.draft", "Draft"),
54
+ panelSettings: geminiLabel("panel.settings", "Effective settings"),
55
+ panelPrompt: geminiLabel("panel.prompt", "Prompt"),
56
+ panelLastError: geminiLabel("panel.lastError", "Last error"),
57
+ panelLastInfo: geminiLabel("panel.lastInfo", "Status"),
58
+ panelSelectionCountSuffix: geminiLabel("panel.selectionCountSuffix", "chars selected"),
59
+ diagnosticsReady: geminiLabel("diagnostics.ready", "Gemini Agent activated successfully."),
60
+ diagnosticsMissingConfiguration: geminiLabel("diagnostics.missingConfiguration", "Gemini request blocked because required provider configuration is missing."),
61
+ diagnosticsNoDocument: geminiLabel("diagnostics.noDocument", "Gemini request blocked because there is no active markdown document."),
62
+ diagnosticsNoSelection: geminiLabel("diagnostics.noSelection", "Gemini rewrite blocked because there is no active selection."),
63
+ diagnosticsRequestSucceeded: geminiLabel("diagnostics.requestSucceeded", "Gemini request completed successfully."),
64
+ diagnosticsWritebackBlocked: geminiLabel("diagnostics.writebackBlocked", "Gemini writeback blocked because explicit writeback is disabled or no draft is available."),
65
+ diagnosticsWritebackApplied: geminiLabel("diagnostics.writebackApplied", "Gemini draft applied successfully."),
66
+ notificationsWritebackBlocked: geminiLabel("notifications.writebackBlocked", "Gemini draft was not applied because explicit writeback is disabled or no draft is available."),
67
+ notificationsWritebackAppliedSelection: geminiLabel("notifications.writebackAppliedSelection", "Gemini draft applied to the active selection."),
68
+ notificationsWritebackAppliedDocument: geminiLabel("notifications.writebackAppliedDocument", "Gemini draft replaced the current document."),
69
+ notificationsMissingConfiguration: geminiLabel("notifications.missingConfiguration", "Configure the Gemini endpoint and API key before sending requests."),
70
+ notificationsNoSelection: geminiLabel("notifications.noSelection", "Select text before requesting a Gemini rewrite draft."),
71
+ notificationsNoDocument: geminiLabel("notifications.noDocument", "Open a markdown file before running Gemini workflows."),
72
+ };
73
+ export const geminiAgentLocaleLoader = {
74
+ defaultLocale: "en",
75
+ fallbackLocale: "en",
76
+ loaders: {
77
+ en: async () => (await import("./locales/en.js")).geminiAgentEnCatalog,
78
+ es: async () => (await import("./locales/es.js")).geminiAgentEsCatalog,
79
+ },
80
+ };
81
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export * from "./version.js";
2
+ export * from "./types.js";
3
+ export * from "./constants.js";
4
+ export * from "./i18n.js";
5
+ export * from "./settings.js";
6
+ export * from "./context.js";
7
+ export * from "./prompt.js";
8
+ export * from "./provider.js";
9
+ export * from "./service.js";
10
+ export * from "./manifest.js";
11
+ export * from "./createGeminiAgentBundledEntry.js";
12
+ export * from "./components/GeminiAgentView.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ export * from "./version.js";
2
+ export * from "./types.js";
3
+ export * from "./constants.js";
4
+ export * from "./i18n.js";
5
+ export * from "./settings.js";
6
+ export * from "./context.js";
7
+ export * from "./prompt.js";
8
+ export * from "./provider.js";
9
+ export * from "./service.js";
10
+ export * from "./manifest.js";
11
+ export * from "./createGeminiAgentBundledEntry.js";
12
+ export * from "./components/GeminiAgentView.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC"}