@sbugallo/opencode-vpet 0.1.1 → 0.3.0
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 +4 -5
- package/dist/adapters/opencode/server-plugin.d.ts +78 -0
- package/dist/adapters/opencode/server-plugin.d.ts.map +1 -0
- package/dist/adapters/opencode/session-messages.d.ts +4 -9
- package/dist/adapters/opencode/session-messages.d.ts.map +1 -1
- package/dist/adapters/opencode/usage-event-mapper.d.ts +6 -3
- package/dist/adapters/opencode/usage-event-mapper.d.ts.map +1 -1
- package/dist/adapters/opencode/vpet-toast.d.ts +4 -2
- package/dist/adapters/opencode/vpet-toast.d.ts.map +1 -1
- package/dist/cli/install.d.ts.map +1 -1
- package/dist/cli.js +3 -3
- package/dist/cli.js.map +4 -4
- package/dist/commands/vpet-command-result.d.ts +2 -2
- package/dist/commands/vpet-command-result.d.ts.map +1 -1
- package/dist/commands/vpet-freeze.d.ts +1 -5
- package/dist/commands/vpet-freeze.d.ts.map +1 -1
- package/dist/commands/vpet-set.d.ts +0 -2
- package/dist/commands/vpet-set.d.ts.map +1 -1
- package/dist/commands/vpet-spawn.d.ts +0 -2
- package/dist/commands/vpet-spawn.d.ts.map +1 -1
- package/dist/commands/vpet-unfreeze.d.ts +1 -5
- package/dist/commands/vpet-unfreeze.d.ts.map +1 -1
- package/dist/index.d.ts +4 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +535 -470
- package/dist/index.js.map +22 -21
- package/dist/package.json +10 -0
- package/dist/rpc.d.ts +32 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/tui/sidebar-card.d.ts +6 -0
- package/dist/tui/sidebar-card.d.ts.map +1 -1
- package/dist/tui/theme.d.ts +34 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/vpet-command-layer.d.ts +33 -5
- package/dist/tui/vpet-command-layer.d.ts.map +1 -1
- package/dist/tui/vpet-dex-dialog.d.ts +2 -2
- package/dist/tui/vpet-dex-dialog.d.ts.map +1 -1
- package/dist/tui/vpet-history-dialog.d.ts +2 -2
- package/dist/tui/vpet-history-dialog.d.ts.map +1 -1
- package/dist/tui.d.ts +23 -12
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +220 -78
- package/dist/tui.js.map +11 -8
- package/package.json +9 -12
- package/dist/adapters/opencode/create-server-hooks.d.ts +0 -39
- package/dist/adapters/opencode/create-server-hooks.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
|
-
`@sbugallo/opencode-vpet` is an OpenCode
|
|
38
|
+
`@sbugallo/opencode-vpet` is an OpenCode v2 plugin that adds a Digimon virtual pet to your OpenCode TUI
|
|
39
39
|
sidebar. Your Digimon evolves as you use OpenCode, and you can browse your discoveries and
|
|
40
40
|
partner history.
|
|
41
41
|
|
|
@@ -62,7 +62,7 @@ options in that Digimon's line.
|
|
|
62
62
|
## Quick start
|
|
63
63
|
|
|
64
64
|
Requirements:
|
|
65
|
-
- OpenCode `>=
|
|
65
|
+
- OpenCode `>=2.0.18`
|
|
66
66
|
- Node `>=20` to run `npx`
|
|
67
67
|
- Bun `>=1.3.5` only for local development
|
|
68
68
|
|
|
@@ -73,10 +73,9 @@ Requirements:
|
|
|
73
73
|
npx @sbugallo/opencode-vpet init
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
The CLI delegates to `opencode plugin @sbugallo/opencode-vpet@<installed-package-version
|
|
76
|
+
The CLI delegates to `opencode plugin add @sbugallo/opencode-vpet@<installed-package-version>`.
|
|
77
77
|
It uses the package's installed exact version so OpenCode uses a version-specific cache key rather
|
|
78
|
-
than reusing a stale bare or `@latest` cache entry.
|
|
79
|
-
configuration registrations.
|
|
78
|
+
than reusing a stale bare or `@latest` cache entry.
|
|
80
79
|
|
|
81
80
|
2. Restart OpenCode when the command finishes.
|
|
82
81
|
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { Plugin } from "@opencode/plugin";
|
|
2
|
+
import type { PartnerLifecycle } from "../../application/ports/partner-lifecycle.ts";
|
|
3
|
+
import type { UsageLedger } from "../../application/ports/usage-ledger.ts";
|
|
4
|
+
import type { VpetControl } from "../../application/ports/vpet-control.ts";
|
|
5
|
+
import type { VpetCommandResult } from "../../commands/vpet-command-result.ts";
|
|
6
|
+
import type { ResolvedVpetSettings, VpetLanguage } from "../../config/types.ts";
|
|
7
|
+
import { type DigimonCatalog } from "../../data/catalog.ts";
|
|
8
|
+
import type { EvolutionSelector, StageThresholds } from "../../domain/evolution.ts";
|
|
9
|
+
import { type SessionMessagesFetcher } from "./session-messages.ts";
|
|
10
|
+
import { type VpetToastNotifier } from "./vpet-toast.ts";
|
|
11
|
+
export type ServerResource = {
|
|
12
|
+
close(): Promise<void>;
|
|
13
|
+
};
|
|
14
|
+
export type ServerRepository = PartnerLifecycle & UsageLedger & VpetControl & ServerResource;
|
|
15
|
+
export type ServerContext = Pick<Plugin.Context, "options" | "command" | "event" | "rpc" | "session">;
|
|
16
|
+
export type ServerEventSource = {
|
|
17
|
+
subscribe(options: {
|
|
18
|
+
readonly signal: AbortSignal;
|
|
19
|
+
}): AsyncIterable<{
|
|
20
|
+
readonly type: string;
|
|
21
|
+
readonly data: unknown;
|
|
22
|
+
}>;
|
|
23
|
+
};
|
|
24
|
+
export type ServerCommandDefinition = {
|
|
25
|
+
readonly name: string;
|
|
26
|
+
readonly description: string;
|
|
27
|
+
readonly execute: (input: {
|
|
28
|
+
readonly prompt: {
|
|
29
|
+
readonly text: string;
|
|
30
|
+
};
|
|
31
|
+
}) => Promise<void>;
|
|
32
|
+
};
|
|
33
|
+
export type ServerRepositoryInput = {
|
|
34
|
+
readonly appDataRoot?: string;
|
|
35
|
+
readonly databasePath?: string;
|
|
36
|
+
};
|
|
37
|
+
export type ServerDependencies = {
|
|
38
|
+
readonly openRepository: (input: ServerRepositoryInput) => Promise<ServerRepository>;
|
|
39
|
+
readonly loadSettings?: () => Promise<ResolvedVpetSettings>;
|
|
40
|
+
readonly loadCatalog?: () => Promise<DigimonCatalog>;
|
|
41
|
+
readonly evolutionSelector?: EvolutionSelector;
|
|
42
|
+
readonly evolutionThresholds?: StageThresholds;
|
|
43
|
+
readonly language?: VpetLanguage;
|
|
44
|
+
readonly notificationsEnabled?: boolean;
|
|
45
|
+
readonly notify?: VpetToastNotifier;
|
|
46
|
+
readonly fetchMessages?: SessionMessagesFetcher;
|
|
47
|
+
};
|
|
48
|
+
export declare const createCommandConfig: () => {
|
|
49
|
+
"vpet-spawn": {
|
|
50
|
+
description: string;
|
|
51
|
+
};
|
|
52
|
+
"vpet-freeze": {
|
|
53
|
+
description: string;
|
|
54
|
+
};
|
|
55
|
+
"vpet-unfreeze": {
|
|
56
|
+
description: string;
|
|
57
|
+
};
|
|
58
|
+
"vpet-set": {
|
|
59
|
+
description: string;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
/** Narrows a v2 event to the sessions whose completed usage should be reconciled. */
|
|
63
|
+
export declare const toReconcileSessionID: (event: unknown) => string | undefined;
|
|
64
|
+
export type ServerReconcile = (messages: readonly unknown[]) => Promise<void>;
|
|
65
|
+
export declare const consumeVpetSessionEvents: (input: {
|
|
66
|
+
readonly event: ServerEventSource;
|
|
67
|
+
readonly signal: AbortSignal;
|
|
68
|
+
readonly fetchMessages: SessionMessagesFetcher;
|
|
69
|
+
readonly reconcile: ServerReconcile;
|
|
70
|
+
}) => Promise<void>;
|
|
71
|
+
export type VpetCommandDefinitionDependencies = {
|
|
72
|
+
readonly repository: ServerRepository;
|
|
73
|
+
readonly emit: (result: VpetCommandResult, catalog?: DigimonCatalog) => Promise<void>;
|
|
74
|
+
readonly loadCatalog: () => Promise<DigimonCatalog>;
|
|
75
|
+
};
|
|
76
|
+
export declare const createVpetCommandDefinitions: ({ repository, emit, loadCatalog, }: VpetCommandDefinitionDependencies) => readonly ServerCommandDefinition[];
|
|
77
|
+
export declare const setupVpetServer: (context: ServerContext, dependencies: ServerDependencies) => Promise<Plugin.Cleanup>;
|
|
78
|
+
//# sourceMappingURL=server-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-plugin.d.ts","sourceRoot":"","sources":["../../../src/adapters/opencode/server-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
export type SessionMessagesFetcher = (sessionID: string) => Promise<readonly Message[]>;
|
|
1
|
+
export type SessionMessagesFetcher = (sessionID: string) => Promise<readonly unknown[]>;
|
|
3
2
|
export type SessionMessagesClient = {
|
|
4
3
|
readonly session: {
|
|
5
|
-
|
|
6
|
-
readonly
|
|
7
|
-
|
|
8
|
-
};
|
|
9
|
-
}) => Promise<{
|
|
10
|
-
readonly data: SessionMessagesResponse | undefined;
|
|
11
|
-
}>;
|
|
4
|
+
context: (input: {
|
|
5
|
+
readonly sessionID: string;
|
|
6
|
+
}) => Promise<readonly unknown[]>;
|
|
12
7
|
};
|
|
13
8
|
};
|
|
14
9
|
export declare const createSessionMessagesFetcher: (client: SessionMessagesClient) => SessionMessagesFetcher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-messages.d.ts","sourceRoot":"","sources":["../../../src/adapters/opencode/session-messages.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"session-messages.d.ts","sourceRoot":"","sources":["../../../src/adapters/opencode/session-messages.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAA;AAEvF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE;QAChB,OAAO,EAAE,CAAC,KAAK,EAAE;YAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAA;KAChF,CAAA;CACF,CAAA;AAED,eAAO,MAAM,4BAA4B,GAAI,QAAQ,qBAAqB,KAAG,sBAE5E,CAAA"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import type { Event, Message } from "@opencode-ai/sdk";
|
|
2
1
|
import type { CompletedUsage } from "../../application/use-cases/record-usage.ts";
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Maps a completed assistant message from the v2 `session.context()` shape into
|
|
4
|
+
* a usage receipt. Messages without a completed timestamp or full token usage
|
|
5
|
+
* (for example title or compaction messages) are not recordable.
|
|
6
|
+
*/
|
|
7
|
+
export declare const toCompletedUsageFromMessage: (message: unknown) => CompletedUsage | null;
|
|
5
8
|
//# sourceMappingURL=usage-event-mapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-event-mapper.d.ts","sourceRoot":"","sources":["../../../src/adapters/opencode/usage-event-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"usage-event-mapper.d.ts","sourceRoot":"","sources":["../../../src/adapters/opencode/usage-event-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAA;AAajF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,SAAS,OAAO,KAAG,cAAc,GAAG,IAsC/E,CAAA"}
|
|
@@ -3,7 +3,7 @@ import type { DigimonCatalog } from "../../data/catalog.ts";
|
|
|
3
3
|
export type VpetToastPayload = Readonly<{
|
|
4
4
|
readonly title: string;
|
|
5
5
|
readonly message: string;
|
|
6
|
-
readonly variant: "info" | "success";
|
|
6
|
+
readonly variant: "info" | "success" | "warning";
|
|
7
7
|
readonly duration: number;
|
|
8
8
|
}>;
|
|
9
9
|
export type VpetToastEvent = Readonly<{
|
|
@@ -23,7 +23,9 @@ export type VpetToastEvent = Readonly<{
|
|
|
23
23
|
readonly toNodeId: string;
|
|
24
24
|
}>;
|
|
25
25
|
export type VpetToastNotifier = (payload: VpetToastPayload) => Promise<void>;
|
|
26
|
-
export type VpetToastTransport = (payload: VpetToastPayload) =>
|
|
26
|
+
export type VpetToastTransport = (payload: VpetToastPayload) => unknown | Promise<unknown>;
|
|
27
|
+
/** Narrows untyped RPC event data into a toast payload. */
|
|
28
|
+
export declare const toVpetToastPayload: (data: unknown) => VpetToastPayload | undefined;
|
|
27
29
|
export declare const formatVpetToast: (event: VpetToastEvent, language: VpetLanguage, catalog: DigimonCatalog) => VpetToastPayload | undefined;
|
|
28
30
|
export declare const createBestEffortVpetToastNotifier: (transport: VpetToastTransport) => VpetToastNotifier;
|
|
29
31
|
//# sourceMappingURL=vpet-toast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vpet-toast.d.ts","sourceRoot":"","sources":["../../../src/adapters/opencode/vpet-toast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,uBAAuB,CAAA;AAExE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"vpet-toast.d.ts","sourceRoot":"","sources":["../../../src/adapters/opencode/vpet-toast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,uBAAuB,CAAA;AAExE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAC,CAAA;AAEF,MAAM,MAAM,cAAc,GACtB,QAAQ,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1F,QAAQ,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,GACrC,QAAQ,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,GACvC,QAAQ,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAC3D,QAAQ,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEpG,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAE5E,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE1F,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,GAAI,MAAM,OAAO,KAAG,gBAAgB,GAAG,SAYrE,CAAA;AAsBD,eAAO,MAAM,eAAe,GAC1B,OAAO,cAAc,EACrB,UAAU,YAAY,EACtB,SAAS,cAAc,KACtB,gBAAgB,GAAG,SA2CrB,CAAA;AAED,eAAO,MAAM,iCAAiC,GAAI,WAAW,kBAAkB,KAAG,iBAQjF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"AAEA,qBAAa,0BAA2B,SAAQ,KAAK;IAGvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAF5C,QAAQ,CAAC,IAAI,gCAA+B;gBAEvB,QAAQ,EAAE,MAAM,GAAG,IAAI;CAO7C;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAE/F,eAAO,MAAM,UAAU,EAAE,eAQrB,CAAA;AAEJ,eAAO,MAAM,mBAAmB,GAAU,aAAa,MAAM,EAAE,UAAS,eAA4B,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"AAEA,qBAAa,0BAA2B,SAAQ,KAAK;IAGvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAF5C,QAAQ,CAAC,IAAI,gCAA+B;gBAEvB,QAAQ,EAAE,MAAM,GAAG,IAAI;CAO7C;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAE/F,eAAO,MAAM,UAAU,EAAE,eAQrB,CAAA;AAEJ,eAAO,MAAM,mBAAmB,GAAU,aAAa,MAAM,EAAE,UAAS,eAA4B,KAAG,OAAO,CAAC,IAAI,CAC9D,CAAA"}
|
package/dist/cli.js
CHANGED
|
@@ -24,7 +24,7 @@ var runCommand = (command, arguments_) => new Promise((resolve, reject) => {
|
|
|
24
24
|
reject(new OpenCodePluginInstallError(exitCode));
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
|
-
var installGlobalPlugin = async (packageSpec, execute = runCommand) => execute("opencode", ["plugin",
|
|
27
|
+
var installGlobalPlugin = async (packageSpec, execute = runCommand) => execute("opencode", ["plugin", "add", packageSpec]);
|
|
28
28
|
|
|
29
29
|
// src/cli.ts
|
|
30
30
|
var HELP = `Usage: opencode-vpet <init|update> [--dry-run]
|
|
@@ -80,7 +80,7 @@ ${HELP}`);
|
|
|
80
80
|
const manifest = await readPackageManifest();
|
|
81
81
|
const packageSpec = `${manifest.name}@${manifest.version}`;
|
|
82
82
|
if (parsed.dryRun) {
|
|
83
|
-
process.stdout.write(`opencode plugin ${packageSpec}
|
|
83
|
+
process.stdout.write(`opencode plugin add ${packageSpec}
|
|
84
84
|
`);
|
|
85
85
|
return 0;
|
|
86
86
|
}
|
|
@@ -100,5 +100,5 @@ run().then((exitCode) => {
|
|
|
100
100
|
process.exitCode = 1;
|
|
101
101
|
});
|
|
102
102
|
|
|
103
|
-
//# debugId=
|
|
103
|
+
//# debugId=2B68ABCF198098E364756E2164756E21
|
|
104
104
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/cli.ts", "../src/cli/install.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"#!/usr/bin/env node\nimport { readFile } from \"node:fs/promises\"\n\nimport { installGlobalPlugin } from \"./cli/install.ts\"\n\nconst HELP = `Usage: opencode-vpet <init|update> [--dry-run]\n\nCommands:\n init Install the current package version through OpenCode's global plugin installer.\n update Reinstall the current package version through the same installer.\n\nOptions:\n --dry-run Show the native OpenCode command without running it.\n --help Show this help text.\n`\n\ntype Command = \"init\" | \"update\"\n\ntype ParsedArguments =\n | Readonly<{ readonly kind: \"help\" }>\n | Readonly<{ readonly kind: \"command\"; readonly command: Command; readonly dryRun: boolean }>\n | Readonly<{ readonly kind: \"invalid\"; readonly message: string }>\n\ntype PackageManifest = Readonly<{ readonly name: \"@sbugallo/opencode-vpet\"; readonly version: string }>\n\nconst EXACT_SEMVER =\n /^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-(?:0|[1-9]\\d*|\\d*[A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[A-Za-z-][0-9A-Za-z-]*))*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$/\n\nconst isPackageManifest = (value: unknown): value is PackageManifest => {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) return false\n if (!(\"name\" in value) || !(\"version\" in value)) return false\n const { name, version } = value\n return name === \"@sbugallo/opencode-vpet\" && typeof version === \"string\" && EXACT_SEMVER.test(version)\n}\n\nconst readPackageManifest = async (): Promise<PackageManifest> => {\n const source = await readFile(new URL(\"../package.json\", import.meta.url), \"utf8\")\n const manifest: unknown = JSON.parse(source)\n if (!isPackageManifest(manifest)) throw new Error(\"Invalid opencode-vpet package manifest.\")\n return manifest\n}\n\nconst parseArguments = (arguments_: readonly string[]): ParsedArguments => {\n if (arguments_.length === 1 && arguments_[0] === \"--help\") return { kind: \"help\" }\n const [command, ...options] = arguments_\n if (command !== \"init\" && command !== \"update\") return { kind: \"invalid\", message: \"Expected init or update.\" }\n if (options.length === 0) return { kind: \"command\", command, dryRun: false }\n if (options.length === 1 && options[0] === \"--dry-run\") return { kind: \"command\", command, dryRun: true }\n return { kind: \"invalid\", message: \"Only --dry-run is supported after a command.\" }\n}\n\nconst run = async (): Promise<number> => {\n const parsed = parseArguments(process.argv.slice(2))\n switch (parsed.kind) {\n case \"help\":\n process.stdout.write(HELP)\n return 0\n case \"invalid\":\n process.stderr.write(`${parsed.message}\\n\\n${HELP}`)\n return 2\n case \"command\": {\n const manifest = await readPackageManifest()\n const packageSpec = `${manifest.name}@${manifest.version}`\n if (parsed.dryRun) {\n process.stdout.write(`opencode plugin ${packageSpec}
|
|
6
|
-
"import { spawn } from \"node:child_process\"\n\nexport class OpenCodePluginInstallError extends Error {\n readonly name = \"OpenCodePluginInstallError\"\n\n constructor(readonly exitCode: number | null) {\n super(\n exitCode === null\n ? \"OpenCode plugin installer exited without a status.\"\n : `OpenCode plugin installer exited with status ${exitCode}.`,\n )\n }\n}\n\nexport type CommandExecutor = (command: string, arguments_: readonly string[]) => Promise<void>\n\nexport const runCommand: CommandExecutor = (command, arguments_) =>\n new Promise((resolve, reject) => {\n const child = spawn(command, arguments_, { shell: false, stdio: \"inherit\" })\n child.once(\"error\", reject)\n child.once(\"close\", (exitCode) => {\n if (exitCode === 0) resolve()\n else reject(new OpenCodePluginInstallError(exitCode))\n })\n })\n\nexport const installGlobalPlugin = async (packageSpec: string, execute: CommandExecutor = runCommand): Promise<void> =>\n execute(\"opencode\", [\"plugin\",
|
|
5
|
+
"#!/usr/bin/env node\nimport { readFile } from \"node:fs/promises\"\n\nimport { installGlobalPlugin } from \"./cli/install.ts\"\n\nconst HELP = `Usage: opencode-vpet <init|update> [--dry-run]\n\nCommands:\n init Install the current package version through OpenCode's global plugin installer.\n update Reinstall the current package version through the same installer.\n\nOptions:\n --dry-run Show the native OpenCode command without running it.\n --help Show this help text.\n`\n\ntype Command = \"init\" | \"update\"\n\ntype ParsedArguments =\n | Readonly<{ readonly kind: \"help\" }>\n | Readonly<{ readonly kind: \"command\"; readonly command: Command; readonly dryRun: boolean }>\n | Readonly<{ readonly kind: \"invalid\"; readonly message: string }>\n\ntype PackageManifest = Readonly<{ readonly name: \"@sbugallo/opencode-vpet\"; readonly version: string }>\n\nconst EXACT_SEMVER =\n /^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-(?:0|[1-9]\\d*|\\d*[A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[A-Za-z-][0-9A-Za-z-]*))*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$/\n\nconst isPackageManifest = (value: unknown): value is PackageManifest => {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) return false\n if (!(\"name\" in value) || !(\"version\" in value)) return false\n const { name, version } = value\n return name === \"@sbugallo/opencode-vpet\" && typeof version === \"string\" && EXACT_SEMVER.test(version)\n}\n\nconst readPackageManifest = async (): Promise<PackageManifest> => {\n const source = await readFile(new URL(\"../package.json\", import.meta.url), \"utf8\")\n const manifest: unknown = JSON.parse(source)\n if (!isPackageManifest(manifest)) throw new Error(\"Invalid opencode-vpet package manifest.\")\n return manifest\n}\n\nconst parseArguments = (arguments_: readonly string[]): ParsedArguments => {\n if (arguments_.length === 1 && arguments_[0] === \"--help\") return { kind: \"help\" }\n const [command, ...options] = arguments_\n if (command !== \"init\" && command !== \"update\") return { kind: \"invalid\", message: \"Expected init or update.\" }\n if (options.length === 0) return { kind: \"command\", command, dryRun: false }\n if (options.length === 1 && options[0] === \"--dry-run\") return { kind: \"command\", command, dryRun: true }\n return { kind: \"invalid\", message: \"Only --dry-run is supported after a command.\" }\n}\n\nconst run = async (): Promise<number> => {\n const parsed = parseArguments(process.argv.slice(2))\n switch (parsed.kind) {\n case \"help\":\n process.stdout.write(HELP)\n return 0\n case \"invalid\":\n process.stderr.write(`${parsed.message}\\n\\n${HELP}`)\n return 2\n case \"command\": {\n const manifest = await readPackageManifest()\n const packageSpec = `${manifest.name}@${manifest.version}`\n if (parsed.dryRun) {\n process.stdout.write(`opencode plugin add ${packageSpec}\\n`)\n return 0\n }\n await installGlobalPlugin(packageSpec)\n process.stdout.write(\"OpenCode plugin installation completed. Restart OpenCode.\\n\")\n return 0\n }\n }\n}\n\nrun()\n .then((exitCode) => {\n process.exitCode = exitCode\n })\n .catch((error: unknown) => {\n const message = error instanceof Error ? error.message : \"Unexpected CLI failure.\"\n process.stderr.write(`${message}\\n`)\n process.exitCode = 1\n })\n",
|
|
6
|
+
"import { spawn } from \"node:child_process\"\n\nexport class OpenCodePluginInstallError extends Error {\n readonly name = \"OpenCodePluginInstallError\"\n\n constructor(readonly exitCode: number | null) {\n super(\n exitCode === null\n ? \"OpenCode plugin installer exited without a status.\"\n : `OpenCode plugin installer exited with status ${exitCode}.`,\n )\n }\n}\n\nexport type CommandExecutor = (command: string, arguments_: readonly string[]) => Promise<void>\n\nexport const runCommand: CommandExecutor = (command, arguments_) =>\n new Promise((resolve, reject) => {\n const child = spawn(command, arguments_, { shell: false, stdio: \"inherit\" })\n child.once(\"error\", reject)\n child.once(\"close\", (exitCode) => {\n if (exitCode === 0) resolve()\n else reject(new OpenCodePluginInstallError(exitCode))\n })\n })\n\nexport const installGlobalPlugin = async (packageSpec: string, execute: CommandExecutor = runCommand): Promise<void> =>\n execute(\"opencode\", [\"plugin\", \"add\", packageSpec])\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": ";;;AACA;;;ACDA;AAAA;AAEO,MAAM,mCAAmC,MAAM;AAAA,EAG/B;AAAA,EAFZ,OAAO;AAAA,EAEhB,WAAW,CAAU,UAAyB;AAAA,IAC5C,MACE,aAAa,OACT,uDACA,gDAAgD,WACtD;AAAA,IALmB;AAAA;AAOvB;AAIO,IAAM,aAA8B,CAAC,SAAS,eACnD,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,EAC/B,MAAM,QAAQ,MAAM,SAAS,YAAY,EAAE,OAAO,OAAO,OAAO,UAAU,CAAC;AAAA,EAC3E,MAAM,KAAK,SAAS,MAAM;AAAA,EAC1B,MAAM,KAAK,SAAS,CAAC,aAAa;AAAA,IAChC,IAAI,aAAa;AAAA,MAAG,QAAQ;AAAA,IACvB;AAAA,aAAO,IAAI,2BAA2B,QAAQ,CAAC;AAAA,GACrD;AAAA,CACF;AAEI,IAAM,sBAAsB,OAAO,aAAqB,UAA2B,eACxF,QAAQ,YAAY,CAAC,UAAU,
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "2B68ABCF198098E364756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Part } from "@opencode-ai/sdk";
|
|
2
1
|
export type VpetCommandEvent = {
|
|
3
2
|
readonly kind: "spawned";
|
|
4
3
|
readonly nodeId: string;
|
|
@@ -12,7 +11,8 @@ export type VpetCommandEvent = {
|
|
|
12
11
|
readonly nodeId: string;
|
|
13
12
|
};
|
|
14
13
|
export type VpetCommandResult = {
|
|
15
|
-
readonly
|
|
14
|
+
readonly message: string;
|
|
15
|
+
readonly variant: "info" | "warning";
|
|
16
16
|
readonly event?: VpetCommandEvent;
|
|
17
17
|
};
|
|
18
18
|
//# sourceMappingURL=vpet-command-result.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vpet-command-result.d.ts","sourceRoot":"","sources":["../../src/commands/vpet-command-result.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"vpet-command-result.d.ts","sourceRoot":"","sources":["../../src/commands/vpet-command-result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAClF;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAClC,CAAA"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import type { VpetControl } from "../application/ports/vpet-control.ts";
|
|
2
2
|
import type { VpetCommandResult } from "./vpet-command-result.ts";
|
|
3
|
-
export
|
|
4
|
-
readonly sessionID: string;
|
|
5
|
-
readonly messageID: string;
|
|
6
|
-
};
|
|
7
|
-
export declare const runVpetFreezeCommand: (control: Pick<VpetControl, "freeze">, context: VpetFreezeContext) => Promise<VpetCommandResult>;
|
|
3
|
+
export declare const runVpetFreezeCommand: (control: Pick<VpetControl, "freeze">) => Promise<VpetCommandResult>;
|
|
8
4
|
//# sourceMappingURL=vpet-freeze.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vpet-freeze.d.ts","sourceRoot":"","sources":["../../src/commands/vpet-freeze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAEvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,
|
|
1
|
+
{"version":3,"file":"vpet-freeze.d.ts","sourceRoot":"","sources":["../../src/commands/vpet-freeze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAEvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,eAAO,MAAM,oBAAoB,GAAU,SAAS,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAG,OAAO,CAAC,iBAAiB,CAa1G,CAAA"}
|
|
@@ -2,8 +2,6 @@ import type { VpetControl } from "../application/ports/vpet-control.ts";
|
|
|
2
2
|
import type { DigimonCatalog } from "../data/catalog.ts";
|
|
3
3
|
import type { VpetCommandResult } from "./vpet-command-result.ts";
|
|
4
4
|
export type VpetSetContext = {
|
|
5
|
-
readonly sessionID: string;
|
|
6
|
-
readonly messageID: string;
|
|
7
5
|
readonly arguments: string;
|
|
8
6
|
};
|
|
9
7
|
export type DigimonCatalogLoader = () => Promise<DigimonCatalog>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vpet-set.d.ts","sourceRoot":"","sources":["../../src/commands/vpet-set.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vpet-set.d.ts","sourceRoot":"","sources":["../../src/commands/vpet-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,CAAA;AAEhE,eAAO,MAAM,iBAAiB,GAC5B,SAAS,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAC1C,SAAS,cAAc,EACvB,aAAa,oBAAoB,KAChC,OAAO,CAAC,iBAAiB,CAwB3B,CAAA"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { PartnerLifecycle } from "../application/ports/partner-lifecycle.ts";
|
|
2
2
|
import type { VpetCommandResult } from "./vpet-command-result.ts";
|
|
3
3
|
export type VpetSpawnContext = {
|
|
4
|
-
readonly sessionID: string;
|
|
5
|
-
readonly messageID: string;
|
|
6
4
|
readonly createdAt: string;
|
|
7
5
|
};
|
|
8
6
|
export declare const runVpetSpawnCommand: (lifecycle: PartnerLifecycle, context: VpetSpawnContext) => Promise<VpetCommandResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vpet-spawn.d.ts","sourceRoot":"","sources":["../../src/commands/vpet-spawn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAEjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"vpet-spawn.d.ts","sourceRoot":"","sources":["../../src/commands/vpet-spawn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAEjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC9B,WAAW,gBAAgB,EAC3B,SAAS,gBAAgB,KACxB,OAAO,CAAC,iBAAiB,CAQ3B,CAAA"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import type { VpetControl } from "../application/ports/vpet-control.ts";
|
|
2
2
|
import type { VpetCommandResult } from "./vpet-command-result.ts";
|
|
3
|
-
export
|
|
4
|
-
readonly sessionID: string;
|
|
5
|
-
readonly messageID: string;
|
|
6
|
-
};
|
|
7
|
-
export declare const runVpetUnfreezeCommand: (control: Pick<VpetControl, "unfreeze">, context: VpetUnfreezeContext) => Promise<VpetCommandResult>;
|
|
3
|
+
export declare const runVpetUnfreezeCommand: (control: Pick<VpetControl, "unfreeze">) => Promise<VpetCommandResult>;
|
|
8
4
|
//# sourceMappingURL=vpet-unfreeze.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vpet-unfreeze.d.ts","sourceRoot":"","sources":["../../src/commands/vpet-unfreeze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAEvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,
|
|
1
|
+
{"version":3,"file":"vpet-unfreeze.d.ts","sourceRoot":"","sources":["../../src/commands/vpet-unfreeze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAEvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,eAAO,MAAM,sBAAsB,GAAU,SAAS,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,KAAG,OAAO,CAAC,iBAAiB,CAa9G,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { createCommandConfig } from "./adapters/opencode/
|
|
1
|
+
import { Plugin } from "@opencode/plugin";
|
|
2
|
+
export { createCommandConfig } from "./adapters/opencode/server-plugin.ts";
|
|
3
3
|
export { DIGIMON_DATA } from "./data/digimon-data.js";
|
|
4
4
|
export type { DigimonId, DigimonRecord, DigimonStage } from "./data/digimon-data.js";
|
|
5
|
-
export declare const plugin: Plugin;
|
|
6
|
-
|
|
7
|
-
readonly id: "opencode-vpet";
|
|
8
|
-
readonly server: Plugin;
|
|
9
|
-
};
|
|
10
|
-
export default entryPlugin;
|
|
5
|
+
export declare const plugin: Plugin.Plugin;
|
|
6
|
+
export default plugin;
|
|
11
7
|
//# sourceMappingURL=index.d.ts.map
|
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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAKzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAEpF,eAAO,MAAM,MAAM,eAGjB,CAAA;AAEF,eAAe,MAAM,CAAA"}
|