@kb-labs/steward-contracts 2.119.0-canary.e120bc0ee → 2.119.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/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/event.ts","../src/constants.ts","../src/inputs.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { Timestamped, EventSubjectType } from './common.js';\n\nexport type EventKind =\n // semantic — never retained-out, see ADR-0001 §\"Ретеншен событий\"\n | 'note'\n | 'project.created'\n | 'project.status_changed'\n | 'commitment.created'\n | 'commitment.done'\n | 'commitment.dropped'\n | 'commitment.rescheduled'\n | 'person.merged'\n // derived — 90 day retention\n | 'review.generated'\n | 'integrity.checked'\n | 'export.completed'\n // trace — 14 day retention\n | 'backfill.imported';\n\nexport const SEMANTIC_EVENT_KINDS: readonly EventKind[] = [\n 'note',\n 'project.created',\n 'project.status_changed',\n 'commitment.created',\n 'commitment.done',\n 'commitment.dropped',\n 'commitment.rescheduled',\n 'person.merged',\n];\n\nexport const DERIVED_EVENT_KINDS: readonly EventKind[] = [\n 'review.generated',\n 'integrity.checked',\n 'export.completed',\n];\n\nexport const TRACE_EVENT_KINDS: readonly EventKind[] = ['backfill.imported'];\n\n/**\n * Append-only history log — the thing that makes the memory \"infinite\".\n * `subjectType`/`subjectId` are a polymorphic reference on purpose (flat,\n * not nested — `DocumentFilter` only supports top-level keys) so new\n * entities never require a schema change here. See ADR-0001 §Event.\n */\nexport interface Event extends Timestamped {\n at: number;\n kind: EventKind;\n subjectType: EventSubjectType;\n subjectId: string;\n reason?: string;\n text?: string;\n meta?: Record<string, unknown>;\n}\n","/**\n * Collection names — must match what `core` passes to `ensureCollection`.\n * Actual storage names are namespaced by the platform as `steward__<name>`.\n */\nexport const COLLECTIONS = {\n projects: 'projects',\n resources: 'resources',\n people: 'people',\n companies: 'companies',\n projectMembers: 'project_members',\n commitments: 'commitments',\n events: 'events',\n topics: 'topics',\n} as const;\n\n/** Default commitment staleness threshold — see ADR-0001 §Commitment. */\nexport const DEFAULT_STALE_AFTER_DAYS = 14;\n\n/** Event retention classes — see ADR-0001 §\"Ретеншен событий\". `semantic` is never deleted. */\nexport const EVENT_RETENTION_MAX_AGE_MS: Record<'derived' | 'trace', number> = {\n derived: 90 * 24 * 60 * 60 * 1000,\n trace: 14 * 24 * 60 * 60 * 1000,\n};\n","/**\n * Zod schemas for everything that crosses the CLI/MCP boundary — command\n * inputs and the results agents read back. Domain models in `types/` stay\n * plain interfaces (see ADR-0001 §\"Разделение core/entry\").\n */\nimport { z } from 'zod';\nimport { DEFAULT_STALE_AFTER_DAYS } from './constants.js';\n\n// ── Project ──────────────────────────────────────────────────────────────\n\nexport const AddProjectInputSchema = z.object({\n name: z.string().min(1),\n status: z.enum(['active', 'paused', 'archived']).default('active'),\n description: z.string().optional(),\n});\nexport type AddProjectInput = z.infer<typeof AddProjectInputSchema>;\n\nexport const UpdateProjectInputSchema = z.object({\n id: z.string().min(1),\n status: z.enum(['active', 'paused', 'archived']).optional(),\n description: z.string().optional(),\n});\nexport type UpdateProjectInput = z.infer<typeof UpdateProjectInputSchema>;\n\nexport const ListProjectsInputSchema = z.object({\n status: z.enum(['active', 'paused', 'archived']).optional(),\n});\nexport type ListProjectsInput = z.infer<typeof ListProjectsInputSchema>;\n\n// ── Resource ─────────────────────────────────────────────────────────────\n\nexport const AddResourceInputSchema = z\n .object({\n projectId: z.string().min(1),\n type: z.string().min(1),\n label: z.string().min(1),\n url: z.string().url().optional(),\n content: z.string().optional(),\n })\n .refine((v) => v.url !== undefined || v.content !== undefined, {\n message: 'at least one of url/content must be set',\n });\nexport type AddResourceInput = z.infer<typeof AddResourceInputSchema>;\n\n// ── Person / Company / ProjectMember ────────────────────────────────────\n\nexport const ContactInputSchema = z.object({\n channel: z.enum(['telegram', 'email', 'phone', 'other']),\n value: z.string().min(1),\n priority: z.number().int().min(0).default(0),\n});\n\nexport const AddPersonInputSchema = z.object({\n name: z.string().min(1),\n contacts: z.array(ContactInputSchema).default([]),\n companyId: z.string().optional(),\n globalTopics: z.array(z.string()).default([]),\n});\nexport type AddPersonInput = z.infer<typeof AddPersonInputSchema>;\n\nexport const UpdatePersonInputSchema = z.object({\n id: z.string().min(1),\n name: z.string().optional(),\n contacts: z.array(ContactInputSchema).optional(),\n companyId: z.string().optional(),\n globalTopics: z.array(z.string()).optional(),\n});\nexport type UpdatePersonInput = z.infer<typeof UpdatePersonInputSchema>;\n\nexport const AddCompanyInputSchema = z.object({\n name: z.string().min(1),\n});\nexport type AddCompanyInput = z.infer<typeof AddCompanyInputSchema>;\n\nexport const AddMemberInputSchema = z.object({\n personId: z.string().min(1),\n projectId: z.string().min(1),\n role: z.string().min(1),\n topics: z.array(z.string()).optional(),\n priority: z.number().int().min(0).default(0),\n});\nexport type AddMemberInput = z.infer<typeof AddMemberInputSchema>;\n\n// ── Routing ──────────────────────────────────────────────────────────────\n\nexport const WhoToContactInputSchema = z.object({\n topic: z.string().min(1),\n projectId: z.string().optional(),\n});\nexport type WhoToContactInput = z.infer<typeof WhoToContactInputSchema>;\n\n// ── Commitment ───────────────────────────────────────────────────────────\n\nexport const AddCommitmentInputSchema = z.object({\n text: z.string().min(1),\n personId: z.string().optional(),\n projectId: z.string().optional(),\n remindAt: z.number().optional(),\n staleAfterDays: z.number().int().positive().default(DEFAULT_STALE_AFTER_DAYS),\n});\nexport type AddCommitmentInput = z.infer<typeof AddCommitmentInputSchema>;\n\nexport const ListCommitmentsInputSchema = z.object({\n status: z.enum(['open', 'done', 'dropped']).optional(),\n projectId: z.string().optional(),\n staleOnly: z.boolean().default(false),\n});\nexport type ListCommitmentsInput = z.infer<typeof ListCommitmentsInputSchema>;\n\nexport const CommitmentDoneInputSchema = z.object({ id: z.string().min(1) });\nexport type CommitmentDoneInput = z.infer<typeof CommitmentDoneInputSchema>;\n\nexport const CommitmentDropInputSchema = z.object({\n id: z.string().min(1),\n reason: z.string().min(1),\n});\nexport type CommitmentDropInput = z.infer<typeof CommitmentDropInputSchema>;\n\nexport const CommitmentSnoozeInputSchema = z.object({\n id: z.string().min(1),\n until: z.number(),\n reason: z.string().optional(),\n});\nexport type CommitmentSnoozeInput = z.infer<typeof CommitmentSnoozeInputSchema>;\n\n// ── Event ────────────────────────────────────────────────────────────────\n\nexport const AddEventInputSchema = z.object({\n subjectType: z.enum(['project', 'person', 'commitment', 'company', 'resource']),\n subjectId: z.string().min(1),\n kind: z.string().min(1).default('note'),\n text: z.string().optional(),\n reason: z.string().optional(),\n meta: z.record(z.string(), z.unknown()).optional(),\n});\nexport type AddEventInput = z.infer<typeof AddEventInputSchema>;\n\nexport const ListEventsInputSchema = z.object({\n subjectType: z.enum(['project', 'person', 'commitment', 'company', 'resource']).optional(),\n subjectId: z.string().optional(),\n kind: z.string().optional(),\n since: z.number().optional(),\n});\nexport type ListEventsInput = z.infer<typeof ListEventsInputSchema>;\n\n// ── Topic ────────────────────────────────────────────────────────────────\n\nexport const AddTopicInputSchema = z.object({\n name: z.string().min(1),\n aliases: z.array(z.string()).default([]),\n});\nexport type AddTopicInput = z.infer<typeof AddTopicInputSchema>;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../home/runner/work/kb-labs/kb-labs/plugins/steward/contracts/src/types/event.ts","../../home/runner/work/kb-labs/kb-labs/plugins/steward/contracts/src/constants.ts","../../home/runner/work/kb-labs/kb-labs/plugins/steward/contracts/src/inputs.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { Timestamped, EventSubjectType } from './common.js';\n\nexport type EventKind =\n // semantic — never retained-out, see ADR-0001 §\"Ретеншен событий\"\n | 'note'\n | 'project.created'\n | 'project.status_changed'\n | 'commitment.created'\n | 'commitment.done'\n | 'commitment.dropped'\n | 'commitment.rescheduled'\n | 'person.merged'\n // derived — 90 day retention\n | 'review.generated'\n | 'integrity.checked'\n | 'export.completed'\n // trace — 14 day retention\n | 'backfill.imported';\n\nexport const SEMANTIC_EVENT_KINDS: readonly EventKind[] = [\n 'note',\n 'project.created',\n 'project.status_changed',\n 'commitment.created',\n 'commitment.done',\n 'commitment.dropped',\n 'commitment.rescheduled',\n 'person.merged',\n];\n\nexport const DERIVED_EVENT_KINDS: readonly EventKind[] = [\n 'review.generated',\n 'integrity.checked',\n 'export.completed',\n];\n\nexport const TRACE_EVENT_KINDS: readonly EventKind[] = ['backfill.imported'];\n\n/**\n * Append-only history log — the thing that makes the memory \"infinite\".\n * `subjectType`/`subjectId` are a polymorphic reference on purpose (flat,\n * not nested — `DocumentFilter` only supports top-level keys) so new\n * entities never require a schema change here. See ADR-0001 §Event.\n */\nexport interface Event extends Timestamped {\n at: number;\n kind: EventKind;\n subjectType: EventSubjectType;\n subjectId: string;\n reason?: string;\n text?: string;\n meta?: Record<string, unknown>;\n}\n","/**\n * Collection names — must match what `core` passes to `ensureCollection`.\n * Actual storage names are namespaced by the platform as `steward__<name>`.\n */\nexport const COLLECTIONS = {\n projects: 'projects',\n resources: 'resources',\n people: 'people',\n companies: 'companies',\n projectMembers: 'project_members',\n commitments: 'commitments',\n events: 'events',\n topics: 'topics',\n} as const;\n\n/** Default commitment staleness threshold — see ADR-0001 §Commitment. */\nexport const DEFAULT_STALE_AFTER_DAYS = 14;\n\n/** Event retention classes — see ADR-0001 §\"Ретеншен событий\". `semantic` is never deleted. */\nexport const EVENT_RETENTION_MAX_AGE_MS: Record<'derived' | 'trace', number> = {\n derived: 90 * 24 * 60 * 60 * 1000,\n trace: 14 * 24 * 60 * 60 * 1000,\n};\n","/**\n * Zod schemas for everything that crosses the CLI/MCP boundary — command\n * inputs and the results agents read back. Domain models in `types/` stay\n * plain interfaces (see ADR-0001 §\"Разделение core/entry\").\n */\nimport { z } from 'zod';\nimport { DEFAULT_STALE_AFTER_DAYS } from './constants.js';\n\n// ── Project ──────────────────────────────────────────────────────────────\n\nexport const AddProjectInputSchema = z.object({\n name: z.string().min(1),\n status: z.enum(['active', 'paused', 'archived']).default('active'),\n description: z.string().optional(),\n});\nexport type AddProjectInput = z.infer<typeof AddProjectInputSchema>;\n\nexport const UpdateProjectInputSchema = z.object({\n id: z.string().min(1),\n status: z.enum(['active', 'paused', 'archived']).optional(),\n description: z.string().optional(),\n});\nexport type UpdateProjectInput = z.infer<typeof UpdateProjectInputSchema>;\n\nexport const ListProjectsInputSchema = z.object({\n status: z.enum(['active', 'paused', 'archived']).optional(),\n});\nexport type ListProjectsInput = z.infer<typeof ListProjectsInputSchema>;\n\n// ── Resource ─────────────────────────────────────────────────────────────\n\nexport const AddResourceInputSchema = z\n .object({\n projectId: z.string().min(1),\n type: z.string().min(1),\n label: z.string().min(1),\n url: z.string().url().optional(),\n content: z.string().optional(),\n })\n .refine((v) => v.url !== undefined || v.content !== undefined, {\n message: 'at least one of url/content must be set',\n });\nexport type AddResourceInput = z.infer<typeof AddResourceInputSchema>;\n\n// ── Person / Company / ProjectMember ────────────────────────────────────\n\nexport const ContactInputSchema = z.object({\n channel: z.enum(['telegram', 'email', 'phone', 'other']),\n value: z.string().min(1),\n priority: z.number().int().min(0).default(0),\n});\n\nexport const AddPersonInputSchema = z.object({\n name: z.string().min(1),\n contacts: z.array(ContactInputSchema).default([]),\n companyId: z.string().optional(),\n globalTopics: z.array(z.string()).default([]),\n});\nexport type AddPersonInput = z.infer<typeof AddPersonInputSchema>;\n\nexport const UpdatePersonInputSchema = z.object({\n id: z.string().min(1),\n name: z.string().optional(),\n contacts: z.array(ContactInputSchema).optional(),\n companyId: z.string().optional(),\n globalTopics: z.array(z.string()).optional(),\n});\nexport type UpdatePersonInput = z.infer<typeof UpdatePersonInputSchema>;\n\nexport const AddCompanyInputSchema = z.object({\n name: z.string().min(1),\n});\nexport type AddCompanyInput = z.infer<typeof AddCompanyInputSchema>;\n\nexport const AddMemberInputSchema = z.object({\n personId: z.string().min(1),\n projectId: z.string().min(1),\n role: z.string().min(1),\n topics: z.array(z.string()).optional(),\n priority: z.number().int().min(0).default(0),\n});\nexport type AddMemberInput = z.infer<typeof AddMemberInputSchema>;\n\n// ── Routing ──────────────────────────────────────────────────────────────\n\nexport const WhoToContactInputSchema = z.object({\n topic: z.string().min(1),\n projectId: z.string().optional(),\n});\nexport type WhoToContactInput = z.infer<typeof WhoToContactInputSchema>;\n\n// ── Commitment ───────────────────────────────────────────────────────────\n\nexport const AddCommitmentInputSchema = z.object({\n text: z.string().min(1),\n personId: z.string().optional(),\n projectId: z.string().optional(),\n remindAt: z.number().optional(),\n staleAfterDays: z.number().int().positive().default(DEFAULT_STALE_AFTER_DAYS),\n});\nexport type AddCommitmentInput = z.infer<typeof AddCommitmentInputSchema>;\n\nexport const ListCommitmentsInputSchema = z.object({\n status: z.enum(['open', 'done', 'dropped']).optional(),\n projectId: z.string().optional(),\n staleOnly: z.boolean().default(false),\n});\nexport type ListCommitmentsInput = z.infer<typeof ListCommitmentsInputSchema>;\n\nexport const CommitmentDoneInputSchema = z.object({ id: z.string().min(1) });\nexport type CommitmentDoneInput = z.infer<typeof CommitmentDoneInputSchema>;\n\nexport const CommitmentDropInputSchema = z.object({\n id: z.string().min(1),\n reason: z.string().min(1),\n});\nexport type CommitmentDropInput = z.infer<typeof CommitmentDropInputSchema>;\n\nexport const CommitmentSnoozeInputSchema = z.object({\n id: z.string().min(1),\n until: z.number(),\n reason: z.string().optional(),\n});\nexport type CommitmentSnoozeInput = z.infer<typeof CommitmentSnoozeInputSchema>;\n\n// ── Event ────────────────────────────────────────────────────────────────\n\nexport const AddEventInputSchema = z.object({\n subjectType: z.enum(['project', 'person', 'commitment', 'company', 'resource']),\n subjectId: z.string().min(1),\n kind: z.string().min(1).default('note'),\n text: z.string().optional(),\n reason: z.string().optional(),\n meta: z.record(z.string(), z.unknown()).optional(),\n});\nexport type AddEventInput = z.infer<typeof AddEventInputSchema>;\n\nexport const ListEventsInputSchema = z.object({\n subjectType: z.enum(['project', 'person', 'commitment', 'company', 'resource']).optional(),\n subjectId: z.string().optional(),\n kind: z.string().optional(),\n since: z.number().optional(),\n});\nexport type ListEventsInput = z.infer<typeof ListEventsInputSchema>;\n\n// ── Topic ────────────────────────────────────────────────────────────────\n\nexport const AddTopicInputSchema = z.object({\n name: z.string().min(1),\n aliases: z.array(z.string()).default([]),\n});\nexport type AddTopicInput = z.infer<typeof AddTopicInputSchema>;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kb-labs/steward-contracts",
|
|
3
|
-
"version": "2.119.0
|
|
3
|
+
"version": "2.119.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Domain types and input schemas for the steward personal PM/CRM plugin",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
"tsup": "^8.5.0",
|
|
25
25
|
"typescript": "^5.6.3",
|
|
26
26
|
"vitest": "^3.2.4",
|
|
27
|
-
"@kb-labs/devkit": "2.119.0
|
|
27
|
+
"@kb-labs/devkit": "2.119.0"
|
|
28
28
|
},
|
|
29
29
|
"engines": {
|
|
30
|
-
"node": ">=
|
|
30
|
+
"node": ">=24.0.0",
|
|
31
31
|
"pnpm": ">=9.0.0"
|
|
32
32
|
},
|
|
33
33
|
"scripts": {
|