signetai 0.160.1 → 0.161.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/mcp-stdio.js CHANGED
@@ -53750,6 +53750,27 @@ function getDreamingAttentionScoped(accessor, agentId, options3) {
53750
53750
  }));
53751
53751
  });
53752
53752
  }
53753
+ function getDreamingAttentionAcrossScopes(accessor, options3) {
53754
+ const boundedLimit = Math.max(1, Math.min(Math.floor(options3.limit ?? 50), 200));
53755
+ const kindFilter = typeof options3.kind === "string" && options3.kind.length > 0 ? "AND kind = ?" : "";
53756
+ const statusFilter = options3.status === "resolved" ? "AND resolved_at IS NOT NULL" : "AND resolved_at IS NULL";
53757
+ const params = [];
53758
+ if (kindFilter)
53759
+ params.push(options3.kind);
53760
+ params.push(boundedLimit);
53761
+ return accessor.withReadDb((db) => {
53762
+ const rows = db.prepare(`SELECT agent_id AS agentId, id, kind, subject_ref AS subjectRef, details_json AS detailsJson,
53763
+ priority, created_at AS createdAt
53764
+ FROM dreaming_attention
53765
+ WHERE 1=1 ${kindFilter} ${statusFilter}
53766
+ ORDER BY priority DESC, created_at ASC, id ASC
53767
+ LIMIT ?`).all(...params);
53768
+ return rows.map(({ detailsJson, ...attention }) => ({
53769
+ ...attention,
53770
+ details: parseDetails(detailsJson)
53771
+ }));
53772
+ });
53773
+ }
53753
53774
  function getDreamingAttentionById(accessor, input) {
53754
53775
  return accessor.withReadDb((db) => {
53755
53776
  const row = db.prepare(`SELECT id, kind, subject_ref AS subjectRef, details_json AS detailsJson, priority, created_at AS createdAt
@@ -54651,7 +54672,7 @@ var auditMutationQueues = new Map;
54651
54672
  var DEFAULT_DREAMING = {
54652
54673
  tokenThreshold: 1e5,
54653
54674
  maxInterval: 6 * 60 * 60 * 1000,
54654
- timeout: 300000,
54675
+ timeout: 600000,
54655
54676
  maxInputTokens: 128000,
54656
54677
  maxOutputTokens: 16000,
54657
54678
  backfillOnFirstRun: true
@@ -57612,10 +57633,15 @@ function capability(id, title, description, readOnly, inputSchema, run) {
57612
57633
  function createDreamingCapabilities(params) {
57613
57634
  const { accessor, agentId, actor } = params;
57614
57635
  return [
57615
- capability("search_entities", "Search entities", "Search the scoped knowledge graph by entity name fragment and optional type.", true, exports_external.object({ query: exports_external.string().optional(), type: exports_external.string().optional(), ...pagination }), async ({ query, type, limit, offset }) => ({
57636
+ capability("search_entities", "Search entities", "Search the knowledge graph for one agent scope by entity name fragment and optional type. Pass the agentId of the scope you are addressing.", true, exports_external.object({
57637
+ agentId: exports_external.string().min(1),
57638
+ query: exports_external.string().optional(),
57639
+ type: exports_external.string().optional(),
57640
+ ...pagination
57641
+ }), async ({ agentId: scopeId, query, type, limit, offset }) => ({
57616
57642
  ok: true,
57617
57643
  items: listKnowledgeEntities(accessor, {
57618
- agentId,
57644
+ agentId: scopeId,
57619
57645
  query,
57620
57646
  type,
57621
57647
  limit: bounded(limit, 20, 100),
@@ -57631,12 +57657,13 @@ function createDreamingCapabilities(params) {
57631
57657
  dependencyCount: item.dependencyCount
57632
57658
  }))
57633
57659
  })),
57634
- capability("get_entity", "Get entity detail", "Fetch one scoped entity with attribute/constraint counts and pinned status, optionally hydrated with its aspect claims and/or dependency links in the same call.", true, exports_external.object({
57660
+ capability("get_entity", "Get entity detail", "Fetch one entity in one agent scope with attribute/constraint counts and pinned status, optionally hydrated with its aspect claims and/or dependency links in the same call.", true, exports_external.object({
57661
+ agentId: exports_external.string().min(1),
57635
57662
  entityId: exports_external.string().min(1),
57636
57663
  include: exports_external.array(exports_external.enum(["aspects", "links"])).optional(),
57637
57664
  direction: exports_external.enum(["incoming", "outgoing", "both"]).optional()
57638
- }), async ({ entityId: entityId2, include, direction }) => {
57639
- const detail = getKnowledgeEntityDetail(accessor, entityId2, agentId);
57665
+ }), async ({ agentId: scopeId, entityId: entityId2, include, direction }) => {
57666
+ const detail = getKnowledgeEntityDetail(accessor, entityId2, scopeId);
57640
57667
  if (!detail)
57641
57668
  return { ok: false, error: "Entity not found" };
57642
57669
  const result = {
@@ -57649,7 +57676,7 @@ function createDreamingCapabilities(params) {
57649
57676
  dependencyCount: detail.dependencyCount
57650
57677
  };
57651
57678
  if (include?.includes("aspects")) {
57652
- result.aspects = getEntityAspectsWithCounts(accessor, entityId2, agentId).map((aspect) => ({
57679
+ result.aspects = getEntityAspectsWithCounts(accessor, entityId2, scopeId).map((aspect) => ({
57653
57680
  id: aspect.aspect.id,
57654
57681
  name: aspect.aspect.name,
57655
57682
  attributeCount: aspect.attributeCount,
@@ -57659,29 +57686,34 @@ function createDreamingCapabilities(params) {
57659
57686
  if (include?.includes("links")) {
57660
57687
  result.links = getEntityDependenciesDetailed(accessor, {
57661
57688
  entityId: entityId2,
57662
- agentId,
57689
+ agentId: scopeId,
57663
57690
  direction: direction ?? "both"
57664
57691
  });
57665
57692
  }
57666
57693
  return result;
57667
57694
  }),
57668
- capability("list_aspect_claims", "List aspect claims", "List active claim attributes for one scoped entity aspect by stable ids.", true, exports_external.object({ entityId: exports_external.string().min(1), aspectId: exports_external.string().min(1), ...pagination }), async ({ entityId: entityId2, aspectId: aspectId2, limit, offset }) => ({
57695
+ capability("list_aspect_claims", "List aspect claims", "List active claim attributes for one entity aspect in one agent scope by stable ids.", true, exports_external.object({ agentId: exports_external.string().min(1), entityId: exports_external.string().min(1), aspectId: exports_external.string().min(1), ...pagination }), async ({ agentId: scopeId, entityId: entityId2, aspectId: aspectId2, limit, offset }) => ({
57669
57696
  ok: true,
57670
57697
  items: getAttributesForAspectFiltered(accessor, {
57671
57698
  entityId: entityId2,
57672
57699
  aspectId: aspectId2,
57673
- agentId,
57700
+ agentId: scopeId,
57674
57701
  kind: "attribute",
57675
57702
  status: "active",
57676
57703
  limit: bounded(limit, 50, 200),
57677
57704
  offset: Math.max(0, Math.floor(offset ?? 0))
57678
57705
  })
57679
57706
  })),
57680
- capability("walk_links", "Walk dependency links", "Walk incoming and/or outgoing scoped dependency links for an entity.", true, exports_external.object({ entityId: exports_external.string().min(1), direction: exports_external.enum(["incoming", "outgoing", "both"]).optional() }), async ({ entityId: entityId2, direction }) => ({
57707
+ capability("walk_links", "Walk dependency links", "Walk incoming and/or outgoing dependency links for an entity in one agent scope.", true, exports_external.object({
57708
+ agentId: exports_external.string().min(1),
57709
+ entityId: exports_external.string().min(1),
57710
+ direction: exports_external.enum(["incoming", "outgoing", "both"]).optional()
57711
+ }), async ({ agentId: scopeId, entityId: entityId2, direction }) => ({
57681
57712
  ok: true,
57682
- items: getEntityDependenciesDetailed(accessor, { entityId: entityId2, agentId, direction: direction ?? "both" })
57713
+ items: getEntityDependenciesDetailed(accessor, { entityId: entityId2, agentId: scopeId, direction: direction ?? "both" })
57683
57714
  })),
57684
- capability("get_evidence", "Get evidence", "Resolve provenance for a scoped claim path (entity/aspect by stable id or name) or a scoped dependency link by stable id.", true, exports_external.object({
57715
+ capability("get_evidence", "Get evidence", "Resolve provenance for a claim path in one agent scope (entity/aspect by stable id or name) or a dependency link by stable id.", true, exports_external.object({
57716
+ agentId: exports_external.string().min(1),
57685
57717
  ref: exports_external.union([
57686
57718
  exports_external.object({
57687
57719
  type: exports_external.literal("claim"),
@@ -57693,21 +57725,21 @@ function createDreamingCapabilities(params) {
57693
57725
  exports_external.object({ type: exports_external.literal("link"), id: exports_external.string().min(1) })
57694
57726
  ]),
57695
57727
  ...pagination
57696
- }), async ({ ref: ref3, limit, offset }) => {
57728
+ }), async ({ agentId: scopeId, ref: ref3, limit, offset }) => {
57697
57729
  if (ref3.type === "claim") {
57698
57730
  let entityName2 = ref3.entity;
57699
57731
  let aspectName2 = ref3.aspect;
57700
- const detail = getKnowledgeEntityDetail(accessor, ref3.entity, agentId);
57732
+ const detail = getKnowledgeEntityDetail(accessor, ref3.entity, scopeId);
57701
57733
  if (detail) {
57702
57734
  entityName2 = detail.entity.name;
57703
- const aspect = getEntityAspectsWithCounts(accessor, ref3.entity, agentId).find((candidate) => candidate.aspect.id === ref3.aspect || candidate.aspect.name === ref3.aspect);
57735
+ const aspect = getEntityAspectsWithCounts(accessor, ref3.entity, scopeId).find((candidate) => candidate.aspect.id === ref3.aspect || candidate.aspect.name === ref3.aspect);
57704
57736
  if (aspect)
57705
57737
  aspectName2 = aspect.aspect.name;
57706
57738
  }
57707
57739
  return {
57708
57740
  ok: true,
57709
57741
  result: getOntologyClaimEvidence(accessor, {
57710
- agentId,
57742
+ agentId: scopeId,
57711
57743
  entity: entityName2,
57712
57744
  aspect: aspectName2,
57713
57745
  group: ref3.group,
@@ -57717,35 +57749,37 @@ function createDreamingCapabilities(params) {
57717
57749
  })
57718
57750
  };
57719
57751
  }
57720
- return { ok: true, result: getOntologyLinkEvidence(accessor, { agentId, id: ref3.id }) };
57752
+ return { ok: true, result: getOntologyLinkEvidence(accessor, { agentId: scopeId, id: ref3.id }) };
57721
57753
  }),
57722
- capability("search_evidence", "Search episodic evidence", "Full-text search immutable episodic memories, artifacts, transcripts, and summaries in this scope. Artifacts are deduped by content hash: content-identical files across vault paths collapse to one canonical entry.", true, exports_external.object({
57754
+ capability("search_evidence", "Search episodic evidence", "Full-text search immutable episodic memories, artifacts, transcripts, and summaries in one agent scope. Artifacts are deduped by content hash: content-identical files across vault paths collapse to one canonical entry.", true, exports_external.object({
57755
+ agentId: exports_external.string().min(1),
57723
57756
  query: exports_external.string().optional(),
57724
57757
  since: exports_external.string().optional(),
57725
57758
  before: exports_external.string().optional(),
57726
57759
  kind: exports_external.enum(["memory", "artifact", "transcript", "summary"]).optional(),
57727
57760
  limit: exports_external.number().finite().optional()
57728
- }), async ({ query, since, before, kind, limit }) => ({
57761
+ }), async ({ agentId: scopeId, query, since, before, kind, limit }) => ({
57729
57762
  ok: true,
57730
- items: accessor.withReadDb((db) => searchEpisodicSources(db, { agentId, query: query ?? "", since, before, kind, limit }))
57763
+ items: accessor.withReadDb((db) => searchEpisodicSources(db, { agentId: scopeId, query: query ?? "", since, before, kind, limit }))
57731
57764
  })),
57732
- capability("validate_proposal", "Validate proposal", "Run the daemon's deterministic pre-write guards in one pass: entity-label gate, duplicate-entity check, and/or contradiction check against active aspect values.", true, exports_external.object({
57765
+ capability("validate_proposal", "Validate proposal", "Run the daemon's deterministic pre-write guards in one pass for one agent scope: entity-label gate, duplicate-entity check, and/or contradiction check against active aspect values.", true, exports_external.object({
57766
+ agentId: exports_external.string().min(1),
57733
57767
  name: exports_external.string().optional(),
57734
57768
  type: exports_external.string().optional(),
57735
57769
  entityId: exports_external.string().optional(),
57736
57770
  aspectId: exports_external.string().optional(),
57737
57771
  value: exports_external.string().optional()
57738
- }), async ({ name, type, entityId: entityId2, aspectId: aspectId2, value }) => {
57772
+ }), async ({ agentId: scopeId, name, type, entityId: entityId2, aspectId: aspectId2, value }) => {
57739
57773
  const result = { ok: true };
57740
57774
  if (name !== undefined) {
57741
57775
  result.label = classifyEntityQuality(name, type);
57742
- result.duplicates = findDuplicateEntityMerges(accessor, { agentId, name });
57776
+ result.duplicates = findDuplicateEntityMerges(accessor, { agentId: scopeId, name });
57743
57777
  }
57744
57778
  if (entityId2 !== undefined && aspectId2 !== undefined && value !== undefined) {
57745
57779
  result.contradiction = getAttributesForAspectFiltered(accessor, {
57746
57780
  entityId: entityId2,
57747
57781
  aspectId: aspectId2,
57748
- agentId,
57782
+ agentId: scopeId,
57749
57783
  kind: "attribute",
57750
57784
  status: "active",
57751
57785
  limit: 200,
@@ -57771,22 +57805,30 @@ function createDreamingCapabilities(params) {
57771
57805
  }
57772
57806
  return { ok: true, passId: params.passId };
57773
57807
  }),
57774
- capability("attention_list", "List attention", "List scoped attention records (the hygiene queue) by kind and resolution status.", true, exports_external.object({
57808
+ capability("attention_list", "List attention", "List attention records (the hygiene queue) by kind and resolution status. Omit agentId to see the whole install's queue (each record carries its owning agentId); pass agentId to narrow to one scope.", true, exports_external.object({
57809
+ agentId: exports_external.string().optional(),
57775
57810
  kind: exports_external.string().optional(),
57776
57811
  status: exports_external.enum(["pending", "resolved"]).optional(),
57777
57812
  limit: exports_external.number().finite().optional()
57778
- }), async ({ kind, status, limit }) => ({
57813
+ }), async ({ agentId: scopeId, kind, status, limit }) => ({
57779
57814
  ok: true,
57780
- items: getDreamingAttentionScoped(accessor, agentId, {
57815
+ items: scopeId !== undefined ? getDreamingAttentionScoped(accessor, scopeId, {
57781
57816
  kind,
57782
57817
  status: status ?? "pending",
57783
57818
  limit: bounded(limit, 20, 100)
57819
+ }) : getDreamingAttentionAcrossScopes(accessor, {
57820
+ kind,
57821
+ status: status ?? "pending",
57822
+ limit: bounded(limit, 50, 200)
57784
57823
  })
57785
57824
  })),
57786
- capability("apply_ontology_ops", "Apply ontology operations", 'Apply every semantic write through the daemon audit seam in one batch. Ops are processed in array order. Hygiene ops (flag, archive_*, merge_entities) cite provenance: "attention:$<index>" for a flag earlier in the same batch, or "attention:<uuid>" from a prior batch. Content-bearing ops cite evidence with exact quotes from canonical episodic evidence.', false, exports_external.object({ operations: exports_external.array(DREAMING_ONTOLOGY_OPERATION_SCHEMA).min(1).max(100) }), async ({ operations }) => {
57825
+ capability("apply_ontology_ops", "Apply ontology operations", 'Apply every semantic write through the daemon audit seam in one batch, in one agent scope (pass the agentId whose graph you are maintaining — hygiene attention records belong to the agent that flagged them). Ops are processed in array order. Hygiene ops (flag, archive_*, merge_entities) cite provenance: "attention:$<index>" for a flag earlier in the same batch, or "attention:<uuid>" from a prior batch. Content-bearing ops cite evidence with exact quotes from canonical episodic evidence in that scope.', false, exports_external.object({
57826
+ agentId: exports_external.string().min(1),
57827
+ operations: exports_external.array(DREAMING_ONTOLOGY_OPERATION_SCHEMA).min(1).max(100)
57828
+ }), async ({ agentId: scopeId, operations }) => {
57787
57829
  const result = applyDreamingOperations({
57788
57830
  accessor,
57789
- agentId,
57831
+ agentId: scopeId,
57790
57832
  actor,
57791
57833
  operations,
57792
57834
  passId: params.passId
@@ -1,43 +1,43 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "0.160.1",
3
+ "version": "0.161.0",
4
4
  "assets": [
5
5
  {
6
6
  "name": "signet-darwin-arm64",
7
7
  "platform": "darwin-arm64",
8
- "sha256": "3a85a13a40d368c8b808b42b8b484215548aac520a1f1b4ec50b34c719da1ca4",
8
+ "sha256": "5fd37eec948611a3f993624381f76dbcd0c2a53744756403df157e4461b4a1c4",
9
9
  "size": 125267872
10
10
  },
11
11
  {
12
12
  "name": "signet-darwin-x64",
13
13
  "platform": "darwin-x64",
14
- "sha256": "9c8a356f2728024f79fa6fc623a27ed4a421f3c6e782c8abd316beaabb2a2b21",
14
+ "sha256": "5831c148f9c2e819dfba66e3ea07f6d692aad62d9dd0dd110af81bbc90fa9962",
15
15
  "size": 129829440
16
16
  },
17
17
  {
18
18
  "name": "signet-linux-arm64",
19
19
  "platform": "linux-arm64",
20
- "sha256": "61f5ff683d2850810f25f941c74b5e839cb51636b2bcb43c70203cce7daacf7a",
21
- "size": 162442641
20
+ "sha256": "f337417aba628e1a0d1a68836aaaddb9399470c18bcdff8b749cc15ee0a78187",
21
+ "size": 162445609
22
22
  },
23
23
  {
24
24
  "name": "signet-linux-x64",
25
25
  "platform": "linux-x64",
26
- "sha256": "d6cd1c973e1551d6e9d6931020817ee15736b9f66720da36b3be63c28d95de3a",
27
- "size": 163001634
26
+ "sha256": "13294b879a6865486b5d9881425653d9529502cc965ec69d76b16e46358c75d0",
27
+ "size": 163004606
28
28
  },
29
29
  {
30
30
  "name": "signet-win32-x64.exe",
31
31
  "platform": "win32-x64",
32
- "sha256": "c2f06fdcec7623a49652ee25b41cd29b95486c3beaa3bc60a7a6f9d07a3bacf7",
33
- "size": 179133440
32
+ "sha256": "faab95688939c913938c56aff90fd89089bac6b42e9b92355befb8c596468e65",
33
+ "size": 179136512
34
34
  }
35
35
  ],
36
36
  "components": {
37
37
  "connectors": {
38
- "url": "signet-connectors-0.160.1.tar.gz",
39
- "sha256": "0458ba873df9535c8390a6ad850b8c9945765d7fda342bcf093eddcde3439213",
40
- "size": 15995
38
+ "url": "signet-connectors-0.161.0.tar.gz",
39
+ "sha256": "137d331643dfa21d59d2a85c9936d4c4ac6db9be91900feb2b6e25bd1d7b1b44",
40
+ "size": 15992
41
41
  }
42
42
  }
43
43
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "signetai",
3
- "version": "0.160.1",
3
+ "version": "0.161.0",
4
4
  "description": "Signet native CLI installer wrapper",
5
5
  "type": "module",
6
6
  "bin": {
@@ -65,10 +65,10 @@
65
65
  "access": "public"
66
66
  },
67
67
  "optionalDependencies": {
68
- "signetai-darwin-arm64": "https://github.com/Signet-AI/signetai/releases/download/v0.160.1/signetai-darwin-arm64-0.160.1.tgz",
69
- "signetai-darwin-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.160.1/signetai-darwin-x64-0.160.1.tgz",
70
- "signetai-linux-arm64": "https://github.com/Signet-AI/signetai/releases/download/v0.160.1/signetai-linux-arm64-0.160.1.tgz",
71
- "signetai-linux-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.160.1/signetai-linux-x64-0.160.1.tgz",
72
- "signetai-win32-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.160.1/signetai-win32-x64-0.160.1.tgz"
68
+ "signetai-darwin-arm64": "https://github.com/Signet-AI/signetai/releases/download/v0.161.0/signetai-darwin-arm64-0.161.0.tgz",
69
+ "signetai-darwin-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.161.0/signetai-darwin-x64-0.161.0.tgz",
70
+ "signetai-linux-arm64": "https://github.com/Signet-AI/signetai/releases/download/v0.161.0/signetai-linux-arm64-0.161.0.tgz",
71
+ "signetai-linux-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.161.0/signetai-linux-x64-0.161.0.tgz",
72
+ "signetai-win32-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.161.0/signetai-win32-x64-0.161.0.tgz"
73
73
  }
74
74
  }