@deepseek-ai/dsh-time-context 0.1.6-alpha.2 → 0.1.7-alpha.2

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/lib/index.js CHANGED
@@ -193,7 +193,7 @@ function apply(ctx, config) {
193
193
  lastTurnInjectionTime: null
194
194
  };
195
195
  if (event.type === "user/message") {
196
- const injected = event.data.source.kind === "plugin" && event.data.source.plugin === "time-context";
196
+ const injected = event.data.source.kind === name;
197
197
  const withMessage = state.lastMessageTime === event.time ? state : {
198
198
  ...state,
199
199
  lastMessageTime: event.time
@@ -234,8 +234,7 @@ function apply(ctx, config) {
234
234
  text
235
235
  }],
236
236
  source: {
237
- kind: "plugin",
238
- plugin: name,
237
+ kind: name,
239
238
  form: "snapshot",
240
239
  sections: [{
241
240
  name,
package/lib/invariant.js CHANGED
@@ -153,11 +153,11 @@ function validateReading(history, event, fail) {
153
153
  if (turn !== expected.turn || step !== expected.step) fail(`time-context reading names turn ${turn}/step ${step}, expected turn ${expected.turn}/step ${expected.step}`);
154
154
  const source = event.data.source;
155
155
  /* v8 ignore next 2 -- replay and dispatch callers select this exact package-owned source before validation. */
156
- if (source.kind !== "plugin" || source.plugin !== SOURCE_NAME) fail("time-context source must retain package ownership");
156
+ if (source.kind !== SOURCE_NAME) fail("time-context source must retain package ownership");
157
157
  const sections = "sections" in source ? source.sections : void 0;
158
158
  const sectionValue = Array.isArray(sections) ? sections[0] : void 0;
159
159
  const section = typeof sectionValue === "object" && sectionValue !== null ? sectionValue : void 0;
160
- if (Object.keys(source).length !== 4 || source.form !== "snapshot" || !Array.isArray(sections) || sections.length !== 1 || section === void 0 || Object.keys(section).length !== 2 || section.name !== SOURCE_NAME || section.text !== blockText) fail("time-context source must carry only the exact snapshot text, not request authority");
160
+ if (Object.keys(source).length !== 3 || source.form !== "snapshot" || !Array.isArray(sections) || sections.length !== 1 || section === void 0 || Object.keys(section).length !== 2 || section.name !== SOURCE_NAME || section.text !== blockText) fail("time-context source must carry only the exact snapshot text, not request authority");
161
161
  const renderedBrowserContext = match[4];
162
162
  const browserContext = deriveBrowserTimeZoneContext(requestMessages(history, turn));
163
163
  if (renderedBrowserContext !== renderBrowserTimeZoneContext(browserContext)) fail("time-context browser-zone text does not match current-turn user messages");
@@ -182,7 +182,7 @@ function validateReading(history, event, fail) {
182
182
  function validateSession(session, fail) {
183
183
  const events = session.snapshotEvents();
184
184
  for (const [index, event] of events.entries()) {
185
- if (event.type !== "user/message" || event.data.source.kind !== "plugin" || event.data.source.plugin !== SOURCE_NAME) continue;
185
+ if (event.type !== "user/message" || event.data.source.kind !== SOURCE_NAME) continue;
186
186
  validateReading(events.slice(0, index), event, fail);
187
187
  }
188
188
  }
@@ -195,7 +195,7 @@ const install = Object.assign((ctx, fail) => {
195
195
  ctx.on("internal/dispatch", (_mode, eventName, args) => {
196
196
  if (eventName !== "session/event") return;
197
197
  const [session, event] = args;
198
- if (event.type !== "user/message" || event.data.source.kind !== "plugin" || event.data.source.plugin !== SOURCE_NAME) return;
198
+ if (event.type !== "user/message" || event.data.source.kind !== SOURCE_NAME) return;
199
199
  validateReading(session.snapshotEvents(), event, fail);
200
200
  }, { global: true });
201
201
  }, { inject: ["sessions"] });
@@ -7,6 +7,14 @@
7
7
  import type { Context } from '@deepseek-ai/cordis';
8
8
  import z from '@deepseek-ai/schemastery';
9
9
  import { z as zod } from 'zod';
10
+ import type { ContextFormed } from '@deepseek-ai/dsh-llm';
11
+ declare module '@deepseek-ai/dsh-llm' {
12
+ interface MessageSourceMap {
13
+ 'time-context': {
14
+ kind: 'time-context';
15
+ } & ContextFormed;
16
+ }
17
+ }
10
18
  /** Cordis plugin name used by loader diagnostics. */
11
19
  export declare const name = "time-context";
12
20
  declare module '@deepseek-ai/dsh-session-projection/types' {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-time-context",
3
3
  "description": "Opt-in durable per-step context with the current time and elapsed time",
4
- "version": "0.1.6-alpha.2",
4
+ "version": "0.1.7-alpha.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -33,33 +33,33 @@
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
35
  "zod": "^4.4.3",
36
- "@deepseek-ai/dsh-util-values": "^0.1.6-alpha.2",
37
- "@deepseek-ai/schemastery": "^3.18.2"
36
+ "@deepseek-ai/dsh-util-values": "0.1.7-alpha.2",
37
+ "@deepseek-ai/schemastery": "~3.18.4"
38
38
  },
39
39
  "peerDependencies": {
40
- "@deepseek-ai/cordis": "^4.0.2",
41
- "@deepseek-ai/dsh-agent": "^0.1.6-alpha.2",
42
- "@deepseek-ai/dsh-llm": "^0.1.6-alpha.2",
43
- "@deepseek-ai/dsh-session": "^0.1.6-alpha.2",
44
- "@deepseek-ai/dsh-invariants": "^0.1.6-alpha.2",
45
- "@deepseek-ai/dsh-session-projection": "^0.1.6-alpha.2"
40
+ "@deepseek-ai/dsh-invariants": "0.1.7-alpha.2",
41
+ "@deepseek-ai/dsh-llm": "0.1.7-alpha.2",
42
+ "@deepseek-ai/dsh-session": "0.1.7-alpha.2",
43
+ "@deepseek-ai/dsh-session-projection": "0.1.7-alpha.2",
44
+ "@deepseek-ai/cordis": "~4.0.4",
45
+ "@deepseek-ai/dsh-agent": "0.1.7-alpha.2"
46
46
  },
47
47
  "devDependencies": {
48
- "@deepseek-ai/cordis": "^4.0.2",
49
- "@deepseek-ai/dsh-agent": "^0.1.6-alpha.2",
50
- "@deepseek-ai/dsh-agent-loop": "^0.1.6-alpha.2",
51
- "@deepseek-ai/dsh-agent-loop-testkit": "^0.1.6-alpha.2",
52
- "@deepseek-ai/dsh-app-boot": "^0.1.6-alpha.2",
53
- "@deepseek-ai/dsh-bash-local": "^0.1.6-alpha.2",
54
- "@deepseek-ai/dsh-invariants": "^0.1.6-alpha.2",
55
- "@deepseek-ai/dsh-session": "^0.1.6-alpha.2",
56
- "@deepseek-ai/dsh-session-checkpoint-policy": "^0.1.6-alpha.2",
57
- "@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.6-alpha.2",
58
- "@deepseek-ai/dsh-session-projection": "^0.1.6-alpha.2",
59
- "@deepseek-ai/dsh-subprocess-local": "^0.1.6-alpha.2",
60
- "@deepseek-ai/dsh-llm": "^0.1.6-alpha.2",
61
- "@deepseek-ai/dsh-system-prompt": "^0.1.6-alpha.2",
62
- "@deepseek-ai/dsh-loader-smoke": "^0.1.6-alpha.2",
63
- "@deepseek-ai/dsh-tools": "^0.1.6-alpha.2"
48
+ "@deepseek-ai/cordis": "~4.0.4",
49
+ "@deepseek-ai/dsh-agent": "0.1.7-alpha.2",
50
+ "@deepseek-ai/dsh-agent-loop": "0.1.7-alpha.2",
51
+ "@deepseek-ai/dsh-agent-loop-testkit": "0.1.7-alpha.2",
52
+ "@deepseek-ai/dsh-app-boot": "0.1.7-alpha.2",
53
+ "@deepseek-ai/dsh-bash-local": "0.1.7-alpha.2",
54
+ "@deepseek-ai/dsh-invariants": "0.1.7-alpha.2",
55
+ "@deepseek-ai/dsh-llm": "0.1.7-alpha.2",
56
+ "@deepseek-ai/dsh-session": "0.1.7-alpha.2",
57
+ "@deepseek-ai/dsh-session-checkpoint-policy": "0.1.7-alpha.2",
58
+ "@deepseek-ai/dsh-loader-smoke": "0.1.7-alpha.2",
59
+ "@deepseek-ai/dsh-session-persistence-jsonl": "0.1.7-alpha.2",
60
+ "@deepseek-ai/dsh-session-projection": "0.1.7-alpha.2",
61
+ "@deepseek-ai/dsh-subprocess-local": "0.1.7-alpha.2",
62
+ "@deepseek-ai/dsh-system-prompt": "0.1.7-alpha.2",
63
+ "@deepseek-ai/dsh-tools": "0.1.7-alpha.2"
64
64
  }
65
65
  }