@zhin.js/plugin-earthquake 0.1.9 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/lib/runtime.d.ts +2 -1
- package/lib/runtime.d.ts.map +1 -1
- package/lib/runtime.js +3 -2
- package/lib/runtime.js.map +1 -1
- package/lib/subscriptions.d.ts +3 -3
- package/lib/subscriptions.d.ts.map +1 -1
- package/lib/subscriptions.js.map +1 -1
- package/package.json +8 -8
- package/plugin.js +27 -22
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# @zhin.js/plugin-earthquake
|
|
2
2
|
|
|
3
|
+
## 0.1.11
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 8adce16: fix: post-refactor audit fixes across runtime, console blueprints, AI setup, and plugin stores
|
|
8
|
+
|
|
9
|
+
- **Agent & Runtime**: adapt `DatabaseHost` models for `DatabaseEngagementJournal` after `DatabaseHost.start()` (`this[#db].select is not a function`), suppress deferred database warning in `seedInitialAiPlanIfEmpty`, lazy-load `@zhin.js/agent/runtime` in `agent-console.ts`, wrap `#receiveSideEvent` with `withEndpointEventPayload` and `captureInteraction`, select only `('id', 'timestamp')` in `SystemLogDatabaseTransport.prune()`, and surface clear install errors when optional AI/protocol packages are absent.
|
|
10
|
+
- **Console Blueprints & RPC**: bundle `.ts` blueprint page entries via `esbuild` in `TypeScriptClientBuilder` so `spec`, `fields`, `dictionary`, `pollMs`, and `reviewSpec` are preserved in browser bundles; wire `CommentReviewSession` in `DeclarativePageView`; authorize `zhin.game` / `zhin.feature.game` in `plugin-console-rpc.ts`; forward `locale` in `entry-routes.ts`; pass `pluginId: entry.owner ?? entry.id` in `loadConsoleEntries.ts`.
|
|
11
|
+
- **Plugin Store & Capabilities**: make `deriveStoreDisposer` idempotent in `@zhin.js/plugin-runtime`, guard nullish `carrier.resources`, handle `{ dispose }` return shapes in isolate `bootstrap.ts`, remove duplicate manual disposals in `answers`/`earthquake`, guard optional `projectLocaleToken` in `calendar`/`reminder`/`rss`/`lottery`, migrate `process-monitor` to `definePluginStore`, and align `capabilityGraph` declarations across plugins.
|
|
12
|
+
- **Architectural Enhancements**:
|
|
13
|
+
1. **Model Capability Baseline Catalog + Override Layer** (`@zhin.js/ai`, `@zhin.js/scaffold-wizard`, `@zhin.js/cli`): add `MODEL_CAPABILITY_CATALOG`, `inferModelCapabilities`, and `applyModelCapabilityDefaults` so built-in models carry accurate `input`/`streaming`/`toolCalling`/`thinking` baselines while preserving explicit `provider.capabilities` overrides.
|
|
14
|
+
2. **Zero-Bundler Declarative Blueprint Protocol** (`@zhin.js/console-contract`, `@zhin.js/client`, `@zhin.js/pagemanager`): add JSON-serializable `DeclarativeValueExpr` operators (`$path`, `$count`, `$sum`, `$format`, `$map`, `$join`, `$coalesce`) evaluated identically across Web, IM Card, and CLI Panel projections, plus in-process `ts.transpileModule` synthesis (`synthesizePureBlueprintModule`) in `TypeScriptClientBuilder`.
|
|
15
|
+
3. **Auto CapabilityGraph Convention Merge & Codegen** (`@zhin.js/plugin-runtime`, `@zhin.js/runtime`, `@zhin.js/cli`): add `mergePluginCapabilityGraph`, `scanConventionCapabilityFeatures` (auto-merged during `PluginScopeAssembler.setupTree`), and `zhin runtime codegen [dir] --write --json`.
|
|
16
|
+
4. **Durable Turn Step Checkpointing** (`@zhin.js/agent`): add `TurnCheckpointStore` and `DatabaseTurnCheckpointStorage` (`agent_turn_checkpoints`) so multi-step tool turns interrupted mid-flight record completed `(assistant[toolCall] -> toolResult[])` rounds and resume from the last committed `toolResult` boundary on retry or `"继续"`/`"continue"`.
|
|
17
|
+
- **UI Component System & Developer Preview Workbench** (`@zhin.js/client`, `@zhin.js/components`, `@zhin.js/cli`, `create-zhin-app`):
|
|
18
|
+
- Expand `@zhin.js/client/ui` and `@zhin.js/components` with unified design tokens (`UI_DESIGN_TOKENS`), option icons (`RadioGroup`/`CheckboxGroup`), custom chart images/logos (`BarChart`/`Sparkline`/`DonutChart`/`GaugeBar`), batch table selection & sticky columns (`DataTable`), responsive viewport presets (`CardCanvas`), and shared layout/display primitives.
|
|
19
|
+
- Add `zhin preview [dir]` command in `@zhin.js/cli` (and `"preview": "zhin preview"` in `create-zhin-app`) for zero-build live SSE component & page blueprint previewing, interactive `previewProps` JSON editing, canvas width/background presets, and box-model outline debugging.
|
|
20
|
+
- **IM Chat Controlled Restart & Post-Restart Channel Receipt** (`@zhin.js/cli`):
|
|
21
|
+
- Add `installRestartHost` (`restart` / `重启` / `reboot` command for Bot owners) and `deliverPendingRestartReceipt` so owners can trigger a supervised process restart from any IM conversation and automatically receive the restart completion summary in the originating channel once the endpoint reconnects.
|
|
22
|
+
- Ignore `SIGHUP` in `NativeTypeScriptSupervisor` when running in `--daemon` mode.
|
|
23
|
+
- @zhin.js/skill@1.1.16
|
|
24
|
+
- @zhin.js/tool@1.1.18
|
|
25
|
+
|
|
26
|
+
## 0.1.10
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- 5419b88: Add generation-scoped `definePluginStore` (`PluginStore`), `Scope.get()`, declarative `PluginSetupCapabilities` return in `definePlugin()`, and `JsonSerializable<T>` typing on `PluginStateStore` to eliminate `as never` casts on TypeScript interfaces.
|
|
31
|
+
- @zhin.js/tool@1.1.17
|
|
32
|
+
- @zhin.js/skill@1.1.15
|
|
33
|
+
|
|
3
34
|
## 0.1.9
|
|
4
35
|
|
|
5
36
|
### Patch Changes
|
package/lib/runtime.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { EarthquakeService } from './service.js';
|
|
2
2
|
/** Owner-scoped earthquake service shared by commands, the poller and the Agent tool. */
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const earthquakeServiceStore: import("zhin.js").PluginStore<EarthquakeService, unknown>;
|
|
4
|
+
export declare const earthquakeServiceToken: import("zhin.js").PluginStore<EarthquakeService, unknown>;
|
|
4
5
|
//# sourceMappingURL=runtime.d.ts.map
|
package/lib/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,yFAAyF;AACzF,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,yFAAyF;AACzF,eAAO,MAAM,sBAAsB,2DAGlC,CAAC;AACF,eAAO,MAAM,sBAAsB,2DAAyB,CAAC"}
|
package/lib/runtime.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { definePluginStore } from 'zhin.js';
|
|
2
2
|
/** Owner-scoped earthquake service shared by commands, the poller and the Agent tool. */
|
|
3
|
-
export const
|
|
3
|
+
export const earthquakeServiceStore = definePluginStore('zhin.earthquake.service', 'Owner-scoped earthquake query and subscription service');
|
|
4
|
+
export const earthquakeServiceToken = earthquakeServiceStore;
|
|
4
5
|
//# sourceMappingURL=runtime.js.map
|
package/lib/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG5C,yFAAyF;AACzF,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CACrD,yBAAyB,EACzB,wDAAwD,CACzD,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC"}
|
package/lib/subscriptions.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type DeliveryTarget, type JsonValue, type TargetMigrationScopes } from 'zhin.js/plugin-runtime';
|
|
1
|
+
import { type DeliveryTarget, type JsonSerializable, type JsonValue, type TargetMigrationScopes } from 'zhin.js/plugin-runtime';
|
|
2
2
|
import { type Locale } from 'zhin.js/i18n';
|
|
3
3
|
export type ConversationKind = 'private' | 'group' | 'channel';
|
|
4
4
|
export interface EarthquakeSubscription {
|
|
@@ -17,8 +17,8 @@ export interface EarthquakeSubscription {
|
|
|
17
17
|
/** Minimal key-value surface; `PluginStateStore` from the database host satisfies it. */
|
|
18
18
|
export interface KeyValueState {
|
|
19
19
|
get(key: string): Promise<unknown>;
|
|
20
|
-
set(key: string, value:
|
|
21
|
-
update?<T
|
|
20
|
+
set<T>(key: string, value: T & JsonSerializable<T>): Promise<void>;
|
|
21
|
+
update?<T = JsonValue>(key: string, updater: (current: T | undefined) => (T & JsonSerializable<T>) | undefined): Promise<T | undefined>;
|
|
22
22
|
}
|
|
23
23
|
export declare const SUBSCRIPTIONS_STATE_KEY = "subscriptions/v1";
|
|
24
24
|
export declare function subscriptionKey(target: Pick<EarthquakeSubscription, 'adapter' | 'endpointKey' | 'conversationKind' | 'conversationId' | 'target'>): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACzJ,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAW1D,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/D,MAAM,WAAW,sBAAsB;IACrC,8GAA8G;IAC9G,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,yFAAyF;AACzF,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CACzI;AAED,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAE1D,wBAAgB,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,SAAS,GAAG,aAAa,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,QAAQ,CAAC,GAAG,MAAM,CAG1J;AA+BD,wBAAgB,iBAAiB,IAAI,aAAa,CAUjD;AAED,qBAAa,iBAAiB;;gBAMhB,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE;QAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE;IAKhF,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAElD,IAAI,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAWzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAKnE,4DAA4D;IACtD,MAAM,CAAC,YAAY,EAAE,sBAAsB,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAWpF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAiC5C;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBACX,KAAK,EAAE,MAAM;CAK1B"}
|
package/lib/subscriptions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/plugin-earthquake",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "Earthquake query and group alert plugin for Zhin.js — CENC + USGS, magnitude/region subscriptions (Plugin Runtime)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -41,21 +41,21 @@
|
|
|
41
41
|
},
|
|
42
42
|
"license": "MIT",
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@zhin.js/skill": "1.1.
|
|
45
|
-
"@zhin.js/tool": "1.1.
|
|
44
|
+
"@zhin.js/skill": "1.1.16",
|
|
45
|
+
"@zhin.js/tool": "1.1.18"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"typescript": "^6.0.3",
|
|
49
49
|
"vitest": "^4.1.10",
|
|
50
50
|
"zod": "^4.4.3",
|
|
51
|
-
"@zhin.js/command": "1.1.
|
|
52
|
-
"@zhin.js/testing": "1.0.
|
|
53
|
-
"zhin.js": "1.1.
|
|
51
|
+
"@zhin.js/command": "1.1.17",
|
|
52
|
+
"@zhin.js/testing": "1.0.9",
|
|
53
|
+
"zhin.js": "1.1.24"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
56
|
"zod": "^4.0.0",
|
|
57
|
-
"@zhin.js/command": "^1.1.
|
|
58
|
-
"zhin.js": "^1.1.
|
|
57
|
+
"@zhin.js/command": "^1.1.17",
|
|
58
|
+
"zhin.js": "^1.1.24"
|
|
59
59
|
},
|
|
60
60
|
"peerDependenciesMeta": {
|
|
61
61
|
"@zhin.js/command": {
|
package/plugin.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// Generated by build-plugin-runtime-entries.mjs. Do not edit.
|
|
2
|
-
import { DataMigrationError,
|
|
2
|
+
import { DataMigrationError, TargetMigrationScopes } from 'zhin.js/plugin-runtime';
|
|
3
3
|
import { createEarthquakeTargetMigration } from "./lib/target-migration.js";
|
|
4
4
|
import { resolveLocale } from 'zhin.js/i18n';
|
|
5
5
|
import { databaseHostToken, definePlugin, logger, outboundHostToken, scheduleHostToken, } from 'zhin.js';
|
|
6
6
|
import { assertEarthquakeTimezone, resolveEarthquakeConfig, } from "./lib/config.js";
|
|
7
|
-
import {
|
|
7
|
+
import { earthquakeServiceStore } from "./lib/runtime.js";
|
|
8
8
|
import { EarthquakeService } from "./lib/service.js";
|
|
9
9
|
import { createMemoryState, SubscriptionStore, subscriptionKey } from "./lib/subscriptions.js";
|
|
10
10
|
/**
|
|
@@ -38,11 +38,16 @@ export default definePlugin({
|
|
|
38
38
|
maxSubscriptions: config.maxSubscriptions,
|
|
39
39
|
});
|
|
40
40
|
const migrationScopes = database && durableState ? new TargetMigrationScopes({ pending: scope => !scope.startsWith('canonical:') }) : undefined;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
const dataMigration = database && durableState && migrationScopes
|
|
42
|
+
? (() => {
|
|
43
|
+
store.bindMigrationScopes(migrationScopes);
|
|
44
|
+
return createEarthquakeTargetMigration({
|
|
45
|
+
database,
|
|
46
|
+
state: durableState,
|
|
47
|
+
scopes: migrationScopes,
|
|
48
|
+
});
|
|
49
|
+
})()
|
|
50
|
+
: undefined;
|
|
46
51
|
let push;
|
|
47
52
|
if (context.resources.has(outboundHostToken)) {
|
|
48
53
|
const outbound = context.resources.use(outboundHostToken);
|
|
@@ -66,20 +71,20 @@ export default definePlugin({
|
|
|
66
71
|
push,
|
|
67
72
|
logger: { warn: (message) => logger.warn(message) },
|
|
68
73
|
});
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
|
|
74
|
+
earthquakeServiceStore.provide(context, service);
|
|
75
|
+
if (push && context.resources.has(scheduleHostToken)) {
|
|
76
|
+
const schedule = context.resources.use(scheduleHostToken);
|
|
77
|
+
const dispose = schedule.register({
|
|
78
|
+
id: 'earthquake/poll',
|
|
79
|
+
cron: config.pollCron,
|
|
80
|
+
description: 'Poll CENC/USGS earthquake feeds and push subscription alerts',
|
|
81
|
+
async execute() {
|
|
82
|
+
// poll() never throws; failures are logged and the next tick tries again.
|
|
83
|
+
await service.poll();
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
context.lifecycle.add(dispose);
|
|
87
|
+
}
|
|
88
|
+
return dataMigration ? { dataMigration } : undefined;
|
|
84
89
|
},
|
|
85
90
|
});
|