@cortexkit/opencode-magic-context 0.15.5 → 0.15.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/README.md +1 -1
- package/dist/cli/logs.d.ts +12 -2
- package/dist/cli/logs.d.ts.map +1 -1
- package/dist/cli.js +74 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/schema/magic-context.d.ts +5 -0
- package/dist/config/schema/magic-context.d.ts.map +1 -1
- package/dist/hooks/auto-update-checker/cache.d.ts +12 -0
- package/dist/hooks/auto-update-checker/cache.d.ts.map +1 -0
- package/dist/hooks/auto-update-checker/checker.d.ts +13 -0
- package/dist/hooks/auto-update-checker/checker.d.ts.map +1 -0
- package/dist/hooks/auto-update-checker/constants.d.ts +10 -0
- package/dist/hooks/auto-update-checker/constants.d.ts.map +1 -0
- package/dist/hooks/auto-update-checker/index.d.ts +12 -0
- package/dist/hooks/auto-update-checker/index.d.ts.map +1 -0
- package/dist/hooks/auto-update-checker/types.d.ts +31 -0
- package/dist/hooks/auto-update-checker/types.d.ts.map +1 -0
- package/dist/hooks/magic-context/note-nudger.d.ts +10 -1
- package/dist/hooks/magic-context/note-nudger.d.ts.map +1 -1
- package/dist/hooks/magic-context/note-visibility.d.ts +43 -0
- package/dist/hooks/magic-context/note-visibility.d.ts.map +1 -0
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15172 -14575
- package/dist/plugin/event.d.ts +3 -0
- package/dist/plugin/event.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -133,7 +133,7 @@ Create `magic-context.jsonc` in your project root, `.opencode/`, or `~/.config/o
|
|
|
133
133
|
|
|
134
134
|
> **Tip:** The `$schema` key enables autocomplete and validation in VS Code and other editors.
|
|
135
135
|
|
|
136
|
-
That's it. Everything else has sensible defaults. Project config merges on top of user-wide settings.
|
|
136
|
+
That's it. Everything else has sensible defaults. Project config merges on top of user-wide settings; `auto_update` is user-config-only so projects cannot disable plugin self-updates.
|
|
137
137
|
|
|
138
138
|
### Oh-My-OpenCode / Oh-My-OpenAgent Users
|
|
139
139
|
|
package/dist/cli/logs.d.ts
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { type DiagnosticReport } from "./diagnostics";
|
|
2
2
|
/**
|
|
3
|
-
* Replace absolute home paths
|
|
4
|
-
* can share reports publicly without leaking
|
|
3
|
+
* Replace absolute home paths, usernames, and known secret-token shapes in
|
|
4
|
+
* captured log lines so users can share reports publicly without leaking
|
|
5
|
+
* local paths or credentials.
|
|
6
|
+
*
|
|
7
|
+
* Order of operations matters:
|
|
8
|
+
* 1. Path/user redaction first — paths are deterministic and the
|
|
9
|
+
* easiest to match, doing them before token redaction means
|
|
10
|
+
* tokens never appear inside a path-resolved replacement.
|
|
11
|
+
* 2. Secret-token redaction in `SECRET_PATTERNS` order — more
|
|
12
|
+
* specific shapes (provider-prefixed keys) before generic
|
|
13
|
+
* assignment patterns, so a known shape doesn't get caught
|
|
14
|
+
* twice.
|
|
5
15
|
*/
|
|
6
16
|
export declare function sanitizeLogContent(content: string): string;
|
|
7
17
|
export interface BundledIssueReport {
|
package/dist/cli/logs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/cli/logs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,gBAAgB,EAA6B,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/cli/logs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,gBAAgB,EAA6B,MAAM,eAAe,CAAC;AAoHjF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiC1D;AAeD,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACxB;AA0CD,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CAkD7B"}
|
package/dist/cli.js
CHANGED
|
@@ -9135,6 +9135,73 @@ import { join as join9 } from "node:path";
|
|
|
9135
9135
|
function escapeRegex2(value) {
|
|
9136
9136
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
9137
9137
|
}
|
|
9138
|
+
var SECRET_PATTERNS = [
|
|
9139
|
+
{
|
|
9140
|
+
name: "anthropic_api_key",
|
|
9141
|
+
pattern: /\bsk-ant-(?:api03-)?[A-Za-z0-9_-]{32,}/g,
|
|
9142
|
+
replacement: "<ANTHROPIC_API_KEY_REDACTED>"
|
|
9143
|
+
},
|
|
9144
|
+
{
|
|
9145
|
+
name: "openai_api_key",
|
|
9146
|
+
pattern: /\bsk-(?:proj-)?[A-Za-z0-9_-]{32,}/g,
|
|
9147
|
+
replacement: "<OPENAI_API_KEY_REDACTED>"
|
|
9148
|
+
},
|
|
9149
|
+
{
|
|
9150
|
+
name: "github_pat_fine_grained",
|
|
9151
|
+
pattern: /\bgithub_pat_[A-Za-z0-9_]{20,}/g,
|
|
9152
|
+
replacement: "<GITHUB_PAT_REDACTED>"
|
|
9153
|
+
},
|
|
9154
|
+
{
|
|
9155
|
+
name: "github_token_classic",
|
|
9156
|
+
pattern: /\b(?:gh[opsu]|ghr)_[A-Za-z0-9]{30,}/g,
|
|
9157
|
+
replacement: "<GITHUB_TOKEN_REDACTED>"
|
|
9158
|
+
},
|
|
9159
|
+
{
|
|
9160
|
+
name: "huggingface_token",
|
|
9161
|
+
pattern: /\bhf_[A-Za-z0-9]{30,}/g,
|
|
9162
|
+
replacement: "<HUGGINGFACE_TOKEN_REDACTED>"
|
|
9163
|
+
},
|
|
9164
|
+
{
|
|
9165
|
+
name: "aws_access_key_id",
|
|
9166
|
+
pattern: /\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g,
|
|
9167
|
+
replacement: "<AWS_ACCESS_KEY_ID_REDACTED>"
|
|
9168
|
+
},
|
|
9169
|
+
{
|
|
9170
|
+
name: "aws_secret_access_key",
|
|
9171
|
+
pattern: /\b(aws[_-]?secret[_-]?access[_-]?key\s*[=:]\s*)([A-Za-z0-9/+=]{40})\b/gi,
|
|
9172
|
+
replacement: (_full, prefix) => `${prefix}<AWS_SECRET_REDACTED>`
|
|
9173
|
+
},
|
|
9174
|
+
{
|
|
9175
|
+
name: "slack_token",
|
|
9176
|
+
pattern: /\bxox[abprsuvc]-[A-Za-z0-9-]{10,}/g,
|
|
9177
|
+
replacement: "<SLACK_TOKEN_REDACTED>"
|
|
9178
|
+
},
|
|
9179
|
+
{
|
|
9180
|
+
name: "google_api_key",
|
|
9181
|
+
pattern: /\bAIza[A-Za-z0-9_-]{35}\b/g,
|
|
9182
|
+
replacement: "<GOOGLE_API_KEY_REDACTED>"
|
|
9183
|
+
},
|
|
9184
|
+
{
|
|
9185
|
+
name: "secret_env_assignment",
|
|
9186
|
+
pattern: /\b([A-Z][A-Z0-9_]*(?:API[_-]?KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL|PRIVATE[_-]?KEY))\s*=\s*([^\s'"]+)/g,
|
|
9187
|
+
replacement: (_full, key) => `${key}=<REDACTED>`
|
|
9188
|
+
},
|
|
9189
|
+
{
|
|
9190
|
+
name: "secret_json_assignment",
|
|
9191
|
+
pattern: /("(?:api[_-]?key|access[_-]?token|auth[_-]?token|bearer[_-]?token|client[_-]?secret|password|private[_-]?key|secret[_-]?key)"\s*:\s*)"([^"]+)"/gi,
|
|
9192
|
+
replacement: (_full, prefix) => `${prefix}"<REDACTED>"`
|
|
9193
|
+
},
|
|
9194
|
+
{
|
|
9195
|
+
name: "bearer_token",
|
|
9196
|
+
pattern: /\b(Authorization\s*:\s*Bearer\s+)([A-Za-z0-9._~+/=-]{16,})/gi,
|
|
9197
|
+
replacement: (_full, prefix) => `${prefix}<BEARER_TOKEN_REDACTED>`
|
|
9198
|
+
},
|
|
9199
|
+
{
|
|
9200
|
+
name: "jwt_token",
|
|
9201
|
+
pattern: /\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g,
|
|
9202
|
+
replacement: "<JWT_REDACTED>"
|
|
9203
|
+
}
|
|
9204
|
+
];
|
|
9138
9205
|
function sanitizeLogContent(content) {
|
|
9139
9206
|
const home = homedir6();
|
|
9140
9207
|
const username = userInfo2().username;
|
|
@@ -9148,6 +9215,13 @@ function sanitizeLogContent(content) {
|
|
|
9148
9215
|
if (username) {
|
|
9149
9216
|
sanitized = sanitized.replace(new RegExp(escapeRegex2(username), "g"), "<USER>");
|
|
9150
9217
|
}
|
|
9218
|
+
for (const { pattern, replacement } of SECRET_PATTERNS) {
|
|
9219
|
+
if (typeof replacement === "string") {
|
|
9220
|
+
sanitized = sanitized.replace(pattern, replacement);
|
|
9221
|
+
} else {
|
|
9222
|
+
sanitized = sanitized.replace(pattern, replacement);
|
|
9223
|
+
}
|
|
9224
|
+
}
|
|
9151
9225
|
return sanitized;
|
|
9152
9226
|
}
|
|
9153
9227
|
function formatTimestamp(date) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,kBAAkB,EAA4B,MAAM,wBAAwB,CAAC;AAG3F,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAChE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CACZ,MAAM,EACN;QACI,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;KACrB,CACJ,CAAC;CACL;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,kBAAkB,EAA4B,MAAM,wBAAwB,CAAC;AAG3F,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAChE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CACZ,MAAM,EACN;QACI,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;KACrB,CACJ,CAAC;CACL;AAmTD,wBAAgB,gBAAgB,CAC5B,SAAS,EAAE,MAAM,GAClB,wBAAwB,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CA+C1D"}
|
|
@@ -241,6 +241,9 @@ export declare const EmbeddingConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
241
241
|
export type EmbeddingConfig = z.infer<typeof EmbeddingConfigSchema>;
|
|
242
242
|
export interface MagicContextConfig {
|
|
243
243
|
enabled: boolean;
|
|
244
|
+
/** Auto-update the cached OpenCode plugin wrapper when a newer npm version is available.
|
|
245
|
+
* USER config only; project configs cannot disable it. Default: true. */
|
|
246
|
+
auto_update?: boolean;
|
|
244
247
|
/** When false, ctx_reduce tool is not registered, all nudges are disabled,
|
|
245
248
|
* and prompt guidance about ctx_reduce is stripped. Heuristic cleanup,
|
|
246
249
|
* compartments, memory, and other features continue to work. Default: true. */
|
|
@@ -338,6 +341,7 @@ export interface MagicContextConfig {
|
|
|
338
341
|
}
|
|
339
342
|
export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
340
343
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
344
|
+
auto_update: z.ZodOptional<z.ZodBoolean>;
|
|
341
345
|
ctx_reduce_enabled: z.ZodDefault<z.ZodBoolean>;
|
|
342
346
|
historian: z.ZodOptional<z.ZodObject<{
|
|
343
347
|
model: z.ZodOptional<z.ZodString>;
|
|
@@ -659,6 +663,7 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
659
663
|
auto_promote: boolean;
|
|
660
664
|
retrieval_count_promotion_threshold: number;
|
|
661
665
|
};
|
|
666
|
+
auto_update?: boolean | undefined;
|
|
662
667
|
historian?: {
|
|
663
668
|
two_pass: boolean;
|
|
664
669
|
model?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magic-context.d.ts","sourceRoot":"","sources":["../../../src/config/schema/magic-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"magic-context.d.ts","sourceRoot":"","sources":["../../../src/config/schema/magic-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface AutoUpdateInstallContext {
|
|
2
|
+
installDir: string;
|
|
3
|
+
packageJsonPath: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function resolveInstallContext(runtimePackageJsonPath?: string | null): AutoUpdateInstallContext | null;
|
|
6
|
+
export declare function preparePackageUpdate(version: string, packageName?: string, runtimePackageJsonPath?: string | null): string | null;
|
|
7
|
+
export declare function runBunInstallSafe(installDir: string, options?: {
|
|
8
|
+
timeoutMs?: number;
|
|
9
|
+
signal?: AbortSignal;
|
|
10
|
+
}): Promise<boolean>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/hooks/auto-update-checker/cache.ts"],"names":[],"mappings":"AAmBA,UAAU,wBAAwB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CAC3B;AAkFD,wBAAgB,qBAAqB,CACjC,sBAAsB,GAAE,MAAM,GAAG,IAAyC,GAC3E,wBAAwB,GAAG,IAAI,CAoBjC;AAED,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAqB,EAClC,sBAAsB,GAAE,MAAM,GAAG,IAAyC,GAC3E,MAAM,GAAG,IAAI,CAyBf;AAED,wBAAsB,iBAAiB,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAC3D,OAAO,CAAC,OAAO,CAAC,CAyClB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type PluginEntryInfo } from "./types";
|
|
2
|
+
export declare function extractChannel(version: string | null): string;
|
|
3
|
+
export declare function getLocalDevVersion(directory: string): string | null;
|
|
4
|
+
export declare function getCurrentRuntimePackageJsonPath(currentModuleUrl?: string): string | null;
|
|
5
|
+
export declare function findPluginEntry(directory: string): PluginEntryInfo | null;
|
|
6
|
+
export declare function getCachedVersion(spec?: string | null): string | null;
|
|
7
|
+
export declare function updatePinnedVersion(configPath: string, oldEntry: string, newVersion: string): boolean;
|
|
8
|
+
export declare function getLatestVersion(channel?: string, options?: {
|
|
9
|
+
registryUrl?: string;
|
|
10
|
+
timeoutMs?: number;
|
|
11
|
+
signal?: AbortSignal;
|
|
12
|
+
}): Promise<string | null>;
|
|
13
|
+
//# sourceMappingURL=checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/hooks/auto-update-checker/checker.ts"],"names":[],"mappings":"AAeA,OAAO,EAIH,KAAK,eAAe,EACvB,MAAM,SAAS,CAAC;AAqCjB,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAY7D;AA4ED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYnE;AAED,wBAAgB,gCAAgC,CAC5C,gBAAgB,GAAE,MAAwB,GAC3C,MAAM,GAAG,IAAI,CAOf;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CA2BzE;AAQD,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CA0BpE;AAED,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAwBT;AAMD,wBAAsB,gBAAgB,CAClC,OAAO,SAAW,EAClB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACjF,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuBxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const PACKAGE_NAME = "@cortexkit/opencode-magic-context";
|
|
2
|
+
export declare const NPM_REGISTRY_URL = "https://registry.npmjs.org";
|
|
3
|
+
export declare const NPM_FETCH_TIMEOUT = 10000;
|
|
4
|
+
/** Root directory OpenCode uses for cached npm plugin wrapper installs. */
|
|
5
|
+
export declare const CACHE_DIR: string;
|
|
6
|
+
/** Primary OpenCode configuration file path (standard JSON). */
|
|
7
|
+
export declare const USER_OPENCODE_CONFIG: string;
|
|
8
|
+
/** Alternative OpenCode configuration file path (JSON with Comments). */
|
|
9
|
+
export declare const USER_OPENCODE_CONFIG_JSONC: string;
|
|
10
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/hooks/auto-update-checker/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,sCAAsC,CAAC;AAChE,eAAO,MAAM,gBAAgB,+BAA+B,CAAC;AAC7D,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAgBxC,2EAA2E;AAC3E,eAAO,MAAM,SAAS,QAA2C,CAAC;AAElE,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,QAAiD,CAAC;AAEnF,yEAAyE;AACzE,eAAO,MAAM,0BAA0B,QAAkD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
|
+
import type { AutoUpdateCheckerOptions } from "./types";
|
|
3
|
+
type OpenCodeEvent = {
|
|
4
|
+
type: string;
|
|
5
|
+
properties?: unknown;
|
|
6
|
+
};
|
|
7
|
+
export declare function createAutoUpdateCheckerHook(ctx: PluginInput, options?: AutoUpdateCheckerOptions): ({ event }: {
|
|
8
|
+
event: OpenCodeEvent;
|
|
9
|
+
}) => Promise<void>;
|
|
10
|
+
export declare function getAutoUpdateInstallDir(): string;
|
|
11
|
+
export type { AutoUpdateCheckerOptions } from "./types";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/auto-update-checker/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAYvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAExD,KAAK,aAAa,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAUF,wBAAgB,2BAA2B,CACvC,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE,wBAA6B,IAaxB,WAAW;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,mBAoBpD;AAuJD,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAYD,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const NpmPackageEnvelopeSchema: z.ZodObject<{
|
|
3
|
+
"dist-tags": z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
4
|
+
}, z.core.$strip>;
|
|
5
|
+
export declare const OpencodePluginTupleSchema: z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>], null>;
|
|
6
|
+
export declare const OpencodeConfigSchema: z.ZodObject<{
|
|
7
|
+
plugin: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodTuple<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>], null>]>>>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
export declare const PackageJsonSchema: z.ZodObject<{
|
|
10
|
+
name: z.ZodOptional<z.ZodString>;
|
|
11
|
+
version: z.ZodOptional<z.ZodString>;
|
|
12
|
+
dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
13
|
+
}, z.core.$loose>;
|
|
14
|
+
export interface AutoUpdateCheckerOptions {
|
|
15
|
+
enabled?: boolean;
|
|
16
|
+
showStartupToast?: boolean;
|
|
17
|
+
autoUpdate?: boolean;
|
|
18
|
+
npmRegistryUrl?: string;
|
|
19
|
+
fetchTimeoutMs?: number;
|
|
20
|
+
signal?: AbortSignal;
|
|
21
|
+
}
|
|
22
|
+
export interface PluginEntryInfo {
|
|
23
|
+
entry: string;
|
|
24
|
+
isPinned: boolean;
|
|
25
|
+
pinnedVersion: string | null;
|
|
26
|
+
configPath: string;
|
|
27
|
+
}
|
|
28
|
+
export type NpmPackageEnvelope = z.infer<typeof NpmPackageEnvelopeSchema>;
|
|
29
|
+
export type OpencodeConfig = z.infer<typeof OpencodeConfigSchema>;
|
|
30
|
+
export type PackageJson = z.infer<typeof PackageJsonSchema>;
|
|
31
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/auto-update-checker/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,wBAAwB;;iBAEnC,CAAC;AAEH,eAAO,MAAM,yBAAyB,yEAA2D,CAAC;AAElG,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAMZ,CAAC;AAEnB,MAAM,WAAW,wBAAwB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -27,8 +27,17 @@ export declare function onNoteTrigger(db: Database, sessionId: string, trigger:
|
|
|
27
27
|
* If it matches the trigger-time message, delivery is deferred to avoid busting
|
|
28
28
|
* the Anthropic prompt-cache prefix (the trigger fired during the agent's turn,
|
|
29
29
|
* so injecting into the current user message would mutate cached content).
|
|
30
|
+
* @param projectIdentity - Project identity for resolving ready smart notes.
|
|
31
|
+
* @param noteReadStillVisible - True if the agent currently has a non-stripped
|
|
32
|
+
* `ctx_note(action="read")` tool call in their visible message context. When
|
|
33
|
+
* the agent has read the latest note state AND that read is still visible,
|
|
34
|
+
* the nudge is suppressed (no value re-surfacing what's already on screen).
|
|
35
|
+
* When the read has been dropped (compactified, ctx_reduce'd, age-cleaned),
|
|
36
|
+
* the nudge fires again at the next work boundary so the agent regains
|
|
37
|
+
* visibility into deferred intentions. Caller computes this via
|
|
38
|
+
* `hasVisibleNoteReadCall(messages)` AFTER drops are materialized.
|
|
30
39
|
*/
|
|
31
|
-
export declare function peekNoteNudgeText(db: Database, sessionId: string, currentUserMessageId?: string | null, projectIdentity?: string): string | null;
|
|
40
|
+
export declare function peekNoteNudgeText(db: Database, sessionId: string, currentUserMessageId?: string | null, projectIdentity?: string, noteReadStillVisible?: boolean): string | null;
|
|
32
41
|
/**
|
|
33
42
|
* Mark the note nudge as delivered after successful placement.
|
|
34
43
|
* Only call after appendReminderToLatestUserMessage returns an anchor (or null if no user message exists).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note-nudger.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/note-nudger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgB3C,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAgB3F;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAG9F;AAED
|
|
1
|
+
{"version":3,"file":"note-nudger.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/note-nudger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgB3C,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAgB3F;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAG9F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,EACpC,eAAe,CAAC,EAAE,MAAM,EACxB,oBAAoB,CAAC,EAAE,OAAO,GAC/B,MAAM,GAAG,IAAI,CAuGf;AAoBD;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,IAAI,GACzB,IAAI,CASN;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAC9B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAI5C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM/E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,IAAI,CAKN"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect whether the agent currently has a visible `ctx_note(action="read")`
|
|
3
|
+
* tool call in their conversation context.
|
|
4
|
+
*
|
|
5
|
+
* Scope and timing
|
|
6
|
+
* ----------------
|
|
7
|
+
* Run this AFTER all message-array drops have been materialized in the
|
|
8
|
+
* transform pipeline (i.e. inside `runPostTransformPhase`, not inside
|
|
9
|
+
* `tagMessages`). By that point:
|
|
10
|
+
* - queued user `ctx_reduce` ops have been applied
|
|
11
|
+
* - heuristic cleanup (auto_drop_tool_age, clear_reasoning_age) ran
|
|
12
|
+
* - sentinel/replay logic neutralized previously-stripped parts
|
|
13
|
+
* So if a `ctx_note` read is still a real, non-sentinel part in the
|
|
14
|
+
* messages array we're about to send, the agent will actually see it.
|
|
15
|
+
*
|
|
16
|
+
* Why this matters
|
|
17
|
+
* ----------------
|
|
18
|
+
* Note nudges are normally suppressed when the agent already ran
|
|
19
|
+
* `ctx_note(read)` since the latest note activity (see `note-nudger.ts`).
|
|
20
|
+
* That suppression is correct ONLY while the read result is still in
|
|
21
|
+
* context. Once the read tool call is dropped (compartmentalized, aged
|
|
22
|
+
* out, or removed by `ctx_reduce`) the agent no longer has visibility
|
|
23
|
+
* into the notes — re-surfacing them at the next work-boundary trigger
|
|
24
|
+
* is the right thing to do.
|
|
25
|
+
*
|
|
26
|
+
* Implementation
|
|
27
|
+
* --------------
|
|
28
|
+
* Single backward pass over the messages array. Scans newest-first because
|
|
29
|
+
* the most recent reads are the ones most likely to still be visible; we
|
|
30
|
+
* can return as soon as one survives.
|
|
31
|
+
*
|
|
32
|
+
* `isSentinel` skips parts that have been neutralized to an empty-text
|
|
33
|
+
* placeholder by the strip/replay pipeline — those parts are present in
|
|
34
|
+
* the array (for cache-key stability) but invisible to the LLM.
|
|
35
|
+
*/
|
|
36
|
+
import type { MessageLike } from "./tag-messages";
|
|
37
|
+
/**
|
|
38
|
+
* Returns true if the messages array contains at least one non-stripped
|
|
39
|
+
* `ctx_note(action="read")` tool call/result pair. Order doesn't matter for
|
|
40
|
+
* correctness — any visible read counts.
|
|
41
|
+
*/
|
|
42
|
+
export declare function hasVisibleNoteReadCall(messages: MessageLike[]): boolean;
|
|
43
|
+
//# sourceMappingURL=note-visibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note-visibility.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/note-visibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAKlD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAUvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-postprocess-phase.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-postprocess-phase.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,eAAe,EAKpB,aAAa,EAIhB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAQhF,OAAO,EAEH,KAAK,4BAA4B,EAEpC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"transform-postprocess-phase.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-postprocess-phase.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA8BlD,QAAA,MAAM,MAAM,EAAE,MAgVb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|