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 +72 -30
- package/native-manifest.json +12 -12
- package/package.json +6 -6
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:
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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,
|
|
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({
|
|
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
|
package/native-manifest.json
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.161.0",
|
|
4
4
|
"assets": [
|
|
5
5
|
{
|
|
6
6
|
"name": "signet-darwin-arm64",
|
|
7
7
|
"platform": "darwin-arm64",
|
|
8
|
-
"sha256": "
|
|
8
|
+
"sha256": "5fd37eec948611a3f993624381f76dbcd0c2a53744756403df157e4461b4a1c4",
|
|
9
9
|
"size": 125267872
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"name": "signet-darwin-x64",
|
|
13
13
|
"platform": "darwin-x64",
|
|
14
|
-
"sha256": "
|
|
14
|
+
"sha256": "5831c148f9c2e819dfba66e3ea07f6d692aad62d9dd0dd110af81bbc90fa9962",
|
|
15
15
|
"size": 129829440
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"name": "signet-linux-arm64",
|
|
19
19
|
"platform": "linux-arm64",
|
|
20
|
-
"sha256": "
|
|
21
|
-
"size":
|
|
20
|
+
"sha256": "f337417aba628e1a0d1a68836aaaddb9399470c18bcdff8b749cc15ee0a78187",
|
|
21
|
+
"size": 162445609
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"name": "signet-linux-x64",
|
|
25
25
|
"platform": "linux-x64",
|
|
26
|
-
"sha256": "
|
|
27
|
-
"size":
|
|
26
|
+
"sha256": "13294b879a6865486b5d9881425653d9529502cc965ec69d76b16e46358c75d0",
|
|
27
|
+
"size": 163004606
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
"name": "signet-win32-x64.exe",
|
|
31
31
|
"platform": "win32-x64",
|
|
32
|
-
"sha256": "
|
|
33
|
-
"size":
|
|
32
|
+
"sha256": "faab95688939c913938c56aff90fd89089bac6b42e9b92355befb8c596468e65",
|
|
33
|
+
"size": 179136512
|
|
34
34
|
}
|
|
35
35
|
],
|
|
36
36
|
"components": {
|
|
37
37
|
"connectors": {
|
|
38
|
-
"url": "signet-connectors-0.
|
|
39
|
-
"sha256": "
|
|
40
|
-
"size":
|
|
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.
|
|
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.
|
|
69
|
-
"signetai-darwin-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.
|
|
70
|
-
"signetai-linux-arm64": "https://github.com/Signet-AI/signetai/releases/download/v0.
|
|
71
|
-
"signetai-linux-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.
|
|
72
|
-
"signetai-win32-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.
|
|
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
|
}
|